当一个循环存在于另一个循环的内部时,它被称为嵌套循环。下面是一个嵌套for循环的示例。
// outer loop
for i in 1...5 {
// codes
// inner loop
for j in 1...2 {
//codes
}
}
在这里,内部for循环for j in 1...2嵌套在外部for循环for i in 1...5之中。
Swift 嵌套 for 循环
嵌套for循环是指一个for循环包含在另一个for循环之内。例如:
// Swift program to display 7 days of 2 weeks
// outer loop
for week in 1...2 {
print("Week: \(week)")
// inner loop
for day in 1...7 {
print(" Day: \(day)")
}
// line break after iteration of outer loop
print("")
}
输出
Week: 1 Day: 1 Day: 2 ... Week: 2 Day: 1 Day: 2 ...
在上面的示例中,外部循环迭代2次,并打印2个星期:Week: 1和Week: 2。
内部循环迭代7次,并打印7天:Day: 1、Day: 2,以此类推。
注意:类似地,我们也可以创建嵌套的while和repeat...while循环。例如:
// outer while loop
while (condition) {
...
// inner while loop
while (condition2) {
...
}
}
Swift for 循环在 while 循环内
我们也可以创建不同类型的嵌套循环。也就是说,我们可以将for循环放在while循环内,反之亦然。例如:
// program to display 7 days of 2 weeks
var weeks = 2
var i = 1
// outer while loop
while (i <= weeks){
print("Week: \(i)")
// inner for loop
for day in 1...7{
print(" Day: \(day)")
}
i = i + 1
}
输出
Week: 1 Day: 1 Day: 2 … Week: 2 Day: 1 Day: 2 ...
在这里,我们在while循环内使用了for循环。
注意:类似地,我们也可以将repeat...while循环嵌套在while或for循环内。
嵌套循环内的 break 和 continue
1. 嵌套循环内的 break
当我们在内部循环中使用break语句时,它会终止内部循环,但不会终止外部循环。例如:
// outer loop
for week in 1...3 {
print("Week: \(week)")
// inner loop
for day in 1...7 {
if(week == 2) {
// use of break statement
break
}
print(" Day: \(day)")
}
print("")
}
输出
Week: 1 Day: 1 Day: 2 ... Week: 2 Week: 3 Day: 1 Day: 2 ...
在上面的示例中,我们在内部for循环中使用了break语句。请注意这一行:
if(week == 2) {
break
}
在这里,当week为2时,程序终止循环。
因此,不会打印week 2的天数。但是,打印周的外部循环不受影响。
2. 嵌套循环内的 continue
类似地,当我们在内部循环中使用continue语句时,它只跳过内部循环的当前迭代。例如:
// outer loop
for week in 1...2 {
print("Week: \(week)")
// inner loop
for day in 1...7 {
// use of continue statement
if(day % 2 != 0) {
continue
}
print(" Day: \(day)")
}
print("")
}
输出
Week: 1 Day: 2 Day: 4 Day: 6 Week: 2 Day: 2 Day: 4 Day: 6
在上面的示例中,我们在内部 for 循环中使用了continue语句。请注意这段代码:
if(day % 2 != 0) {
continue
}
在这里,当day的值为奇数时,会执行continue语句。因此,程序只打印偶数的天。
我们可以看到continue语句只影响了内部循环。外部循环正在正常工作。