原文: https://www.programiz.com/swift-programming/continue-statement

在本文中,您将学习使用continue语句来转移程序的控制权。

使用循环或条件语句时,可能需要跳过循环内的某些语句或立即终止循环,而不检查测试表达式。

在这种情况下,将使用breakContinue语句。 访问页面以了解有关break语句的更多信息。

Continue语句停止在循环或switch语句内执行语句。 然后,它会跳回以再次求值循环的测试表达式。

Continue语句的语法为:

  1. continue

continue语句如何工作?

`continue`语句 - 图1


示例 1:Swift for循环中的continue语句

  1. for i in 1...5 {
  2. if i == 4 {
  3. continue
  4. }
  5. print("i = \(i)")
  6. }

运行该程序时,输出为:

  1. i = 1
  2. i = 2
  3. i = 3
  4. i = 5

在上面的程序中,要迭代的序列的范围是 1 到 5。

i的值设置为范围(1)中的第一个数字,并在每次迭代时更新为范围的下一个数字。

该循环还包含带有表达式i == 4if语句。 当表达式为真时(第 4 次迭代),该表达式将执行continue语句,跳过语句print("i = \(i)")的执行并移至下一个迭代(i = 5)。


示例 2:Swift while循环中的Continue语句

  1. var intialLevel:Int = -5, finalLevel:Int = 2
  2. var currentLevel:Int = intialLevel
  3. while currentLevel < finalLevel {
  4. if intialLevel < 0 {
  5. print("Starting level must be positive")
  6. intialLevel = 0
  7. currentLevel = intialLevel
  8. continue //skips the current execution
  9. }
  10. currentLevel += 1
  11. print("next level")
  12. }
  13. print("outside of while loop")

运行该程序时,输出为:

  1. Starting level must be positive
  2. next level
  3. next level
  4. outside of while loop

在上面的程序中,while循环运行直到currentLevel小于finalLevel为止。 由于intialLevel被分配值为 -5 并且小于 0,因此将执行if内部的语句。

当程序到达continue语句时,它将跳过while循环的语句,并再次跳转以检查条件currentLevel < finalLevel


示例 3:Swift 嵌套循环的continue语句

  1. for j in 1...2 {
  2. for i in 1...5 {
  3. if i == 4 {
  4. continue
  5. }
  6. print("i = \(i)")
  7. }
  8. print("j = \(j)")
  9. }

当你运行程序时,输出为:

  1. i = 1
  2. i = 2
  3. i = 3
  4. i = 5
  5. j = 1
  6. i = 1
  7. i = 2
  8. i = 3
  9. i = 5

在上面的程序中,if i == 4内的continue语句仅跳过内部for循环内的print("i = \(i)")语句的执行。 但是,它不会跳过外循环for i in 1...5的执行。

但是,如果您也想continue外循环该怎么办。 为此,您需要在 Swift 中使用带标签的语句。


带标签continue的语句

前缀为(label:Statement)形式的语句称为带标签的语句。 标签是一个标识符,您可以稍后在breakcontinue语句中引用它。 要了解有关带标签语句的更多信息,请访问 Swift 带标签语句

带标签continue的语句如何工作?

`continue`语句 - 图2

在此,label是标识符。 当执行continue语句时,程序将跳过循环中其余的代码,并跳转到label开始的语句。

示例 4:带标签的continue语句

  1. outerloop: for j in 1...2 {
  2. innerloop: for i in 1...5 {
  3. if i == 4 {
  4. continue outerloop
  5. }
  6. print("i = \(i)")
  7. }
  8. print("j = \(j)")
  9. }

运行该程序时,输出为:

  1. i = 1
  2. i = 2
  3. i = 3
  4. i = 1
  5. i = 2
  6. i = 3

在上面的程序中,有两个标记的语句outerloop: for j in 1...2innerloop: for i in 1...5

标签名称externalloopinnerloop可以与continue语句一起使用。

在程序中,我们使用语句continue outerloop跳过内部循环和外部循环中的语句执行。 在此过程中,ij的值都更新为该范围内的下一个数字。