Swift 中的嵌套循环

当一个循环存在于另一个循环的内部时,它被称为嵌套循环。下面是一个嵌套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: 1Week: 2

内部循环迭代7次,并打印7天:Day: 1Day: 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循环嵌套在whilefor循环内。


嵌套循环内的 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
}

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

因此,不会打印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语句只影响了内部循环。外部循环正在正常工作。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战