Swift 中的嵌套循环
- 嵌套循环概念:在 Swift 中,嵌套循环指的是一个循环(如
for
或while
循环)内部包含另一个循环。 - 循环类型组合:可以将不同类型的循环相互嵌套,例如
for
循环嵌套在while
循环内,或反之。 break
和continue
用法:在嵌套循环中,break
语句仅终止最内层循环,而continue
语句只跳过内层循环的当前迭代,外层循环不受影响。
如果一个循环存在于另一个循环的内部,这就称为嵌套循环。这里有一个嵌套 for
循环的例子。
// 外层循环
for i in 1...5 {
// 代码
// 内层循环
for j in 1...2 {
// 代码
}
}
这里,内层的 for
循环 for j in 1...2
嵌套在外层的 for
循环 for i in 1...5
内。
Swift 嵌套 for 循环
一个嵌套的 for
循环包括一个 for
循环嵌套在另一个 for
循环内部。例如,
// Swift 程序展示 2 周的 7 天
// 外层循环
for week in 1...2 {
print("周: \(week)")
// 内层循环
for day in 1...7 {
print(" 日: \(day)")
}
// 外层循环迭代后的换行
print("")
}
输出
周: 1
日: 1
日: 2
...
周: 2
日: 1
日: 2
...
在上面的例子中,外层循环迭代 2 次,打印 2 周:周: 1
和 周: 2
。
内层循环迭代 7 次,打印 7 天:日: 1
、日: 2
等等。
注意: 同样,我们也可以创建嵌套的 while 和 repeat...while 循环。例如,
// 外层 while 循环
while (condition) {
...
// 内层 while 循环
while (condition2) {
...
}
}
Swift 中的 for 循环嵌套在 while 循环内
我们也可以创建不同类型的嵌套循环。也就是说,我们可以将 for
循环放在 while
循环内部,反之亦然。例如,
// 程序展示 2 周的 7 天
var weeks = 2
var i = 1
// 外层 while 循环
while (i <= weeks){
print("周: \(i)")
// 内层 for 循环
for day in 1...7{
print(" 日: \(day)")
}
i = i + 1
}
输出
周: 1
日: 1
日: 2
…
周: 2
日: 1
日: 2
...
这里,我们在 while
循环内部使用了一个 for
循环。
注意: 同样地,我们也可以在 while
或 for
循环内部嵌套一个 repeat...while
循环。
在嵌套循环中使用 break 和 continue
1. 在嵌套循环中使用 break
当我们在内层循环中使用 break 语句 时,它会终止内层循环,但不会终止外层循环。例如,
// 外层循环
for week in 1...3 {
print("周: \(week)")
// 内层循环
for day in 1...7 {
if(week == 2) {
// 使用 break 语句
break
}
print(" 日: \(day)")
}
print("")
}
输出
周: 1
日: 1
日: 2
...
周: 2
周: 3
日: 1
日: 2
...
在上面的示例中,我们在内层 for
循环中使用了 break
语句。注意这行代码,
if(week == 2) {
break
}
这里,当 week
为 2
时程序终止循环。
因此,第二周
的日子没有被打印。但是,打印周数的外层循环并未受影响。
2. 在嵌套循环中使用 continue
同样地,当我们在内层循环中使用 continue 语句 时,它只跳过内层循环的当前迭代。例如,
// 外层循环
for week in 1...2 {
print("周: \(week)")
// 内层循环
for day in 1...7 {
// 使用 continue 语句
if(day % 2 != 0) {
continue
}
print(" 日: \(day)")
}
print("")
}
输出
周: 1
日: 2
日: 4
日: 6
周: 2
日: 2
日: 4
日: 6
在上面的示例中,我们在内层 for 循环中使用了 continue
语句。注意这段代码,
if(day % 2 != 0) {
continue
}
这里,当 day
的值为奇数时,执行 continue
语句。因此,程序只打印了那些为偶数的日子。
我们可以看到 continue
语句只影响了内层循环。外层循环正常运行,没有受到任何影响。