当一个循环存在于另一个循环的内部时,它被称为嵌套循环。下面是一个嵌套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
语句只影响了内部循环。外部循环正在正常工作。