📜  Swift continue

📅  最后修改于: 2020-10-09 15:47:36             🧑  作者: Mango

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

 

 

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

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

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

Continue语句的语法为:

continue

连续语句如何工作?

Swif continue statement


示例1:for循环中的Swift继续语句
for i in 1...5 {
    if i == 4 {
        continue
    }
    print("i = \(i)")
}

运行该程序时,输出为:

i = 1
i = 2
i = 3
i = 5

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

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

该循环还包含一个表达式i == 4的if语句。该表达式在被评估为true时(第4次迭代)将执行continue语句,跳过语句print("i = \(i)")然后移至下一个迭代(i = 5)。


示例2:while循环中的斯威夫特继续语句
var intialLevel:Int = -5, finalLevel:Int = 2
var currentLevel:Int = intialLevel

while currentLevel < finalLevel {
    if intialLevel < 0 {
        print("Starting level must be positive")
        intialLevel = 0
        currentLevel = intialLevel
        continue //skips the current execution
    }
    currentLevel += 1
    print("next level")
}
print("outside of while loop")

运行该程序时,输出为:

Starting level must be positive
next level
next level
outside of while loop

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

 

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


示例3:带有嵌套循环的Swift Continue语句
for j in 1...2 {
    for i in 1...5 {
        if i == 4 {
            continue
        }
        print("i = \(i)")
    }
    print("j = \(j)")
}

运行该程序时,输出为:

i = 1
i = 2
i = 3
i = 5
j = 1
i = 1
i = 2
i = 3
i = 5

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

但是,如果您也想continue循环呢?为此,您需要在Swift中使用带标签的语句。


带继续标签的声明

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

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

Swift labeled statement with continue

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

示例4:带有继续的标签语句

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

运行该程序时,输出为:

i = 1
i = 2
i = 3
i = 1
i = 2
i = 3

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

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

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