跳到主要内容

Swift 中的嵌套循环

提示
  1. 嵌套循环概念:在 Swift 中,嵌套循环指的是一个循环(如 forwhile 循环)内部包含另一个循环。
  2. 循环类型组合:可以将不同类型的循环相互嵌套,例如 for 循环嵌套在 while 循环内,或反之。
  3. breakcontinue 用法:在嵌套循环中,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 循环。 注意: 同样地,我们也可以在 whilefor 循环内部嵌套一个 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
}

这里,当 week2 时程序终止循环。

因此,第二周 的日子没有被打印。但是,打印周数的外层循环并未受影响。

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 语句只影响了内层循环。外层循环正常运行,没有受到任何影响。