Swift 嵌套循环

在本教程中,我们将通过示例学习 Swift 中的嵌套循环。

如果一个循环存在于另一个循环体中,则称为嵌套循环。下面是嵌套 for 循环的示例。

  1. // outer loop
  2. for i in 1...5 {
  3. // codes
  4. // inner loop
  5. for j in 1...2 {
  6. //codes
  7. }
  8. }

这里,1…2j 的内部 for 循环嵌套在 1…5i 的外部 for 循环中。


Swift 嵌套 for 循环

嵌套的 for 循环包括一个 for 循环和另一个 for 循环。例如,

  1. // Swift program to display 7 days of 2 weeks
  2. // outer loop
  3. for week in 1...2 {
  4. print("Week: \(week)")
  5. // inner loop
  6. for day in 1...7 {
  7. print(" Day: \(day)")
  8. }
  9. // line break after iteration of outer loop
  10. print("")
  11. }

结果为:

  1. Week: 1
  2. Day: 1
  3. Day: 2
  4. ...
  5. Week: 2
  6. Day: 1
  7. Day: 2
  8. ...

while 循环中的 Swift for 循环

我们还可以创建不同类型的嵌套循环。也就是说,我们可以将 for 循环放在 while 循环中,反之亦然。例如,

  1. // program to display 7 days of 2 weeks
  2. var weeks = 2
  3. var i = 1
  4. // outer while loop
  5. while (i <= weeks){
  6. print("Week: \(i)")
  7. // inner for loop
  8. for day in 1...7{
  9. print(" Day: \(day)")
  10. }
  11. i = i + 1
  12. }

结果为:

  1. Week: 1
  2. Day: 1
  3. Day: 2
  4. Week: 2
  5. Day: 1
  6. Day: 2
  7. ...

这里,我们在 while 循环中使用了 for 循环。

注意:类似地,我们也可以在 whilefor 循环中嵌套一个 repeat…while 循环。

在嵌套循环中使用 break 和 continue 关键字

1. 在嵌套循环内中使用 break 关键字
  1. // outer loop
  2. for week in 1...3 {
  3. print("Week: \(week)")
  4. // inner loop
  5. for day in 1...7 {
  6. if(week == 2) {
  7. // use of break statement
  8. break
  9. }
  10. print(" Day: \(day)")
  11. }
  12. print("")
  13. }

结果如下:

  1. Week: 1
  2. Day: 1
  3. Day: 2
  4. ...
  5. Week: 2
  6. Week: 3
  7. Day: 1
  8. Day: 2
  9. ...

当我们在内部循环中使用 break 语句 时,它会终止内部循环而不是外部循环。例如,

  1. if(week == 2) {
  2. break
  3. }

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

因此,不打印 week 2 的日期。但是 week 的外部循环不受影响。


2. 在嵌套循环内中使用 continue 关键字

类似地,当我们在内部循环中使用 continue 语句 时,它只跳过内部循环的当前迭代。例如,

  1. // outer loop
  2. for week in 1...2 {
  3. print("Week: \(week)")
  4. // inner loop
  5. for day in 1...7 {
  6. // use of continue statement
  7. if(day % 2 != 0) {
  8. continue
  9. }
  10. print(" Day: \(day)")
  11. }
  12. print("")
  13. }

结果如下:

  1. Week: 1
  2. Day: 2
  3. Day: 4
  4. Day: 6
  5. Week: 2
  6. Day: 2
  7. Day: 4
  8. Day: 6

在上面的实例中,我们在内部 for 循环中使用了 continue 语句。注意代码,

  1. if(day % 2 != 0) {
  2. continue
  3. }

这里,当 day 的值为奇数时,执行 continue 语句。因此,该程序只打印偶数天。

我们可以看到 continue 语句只影响了内部循环。外部循环正常运行,没有任何问题。