在本文中,您将学习使用continue语句来转移程序的控制权。
在使用循环或条件语句时,可能需要跳过循环内的某些语句或立即终止循环,而不检查测试表达式。
在这种情况下,将使用break和Continue语句。访问该页面以了解有关break语句的更多信息。
continue 语句停止循环或switch语句内语句的执行。然后,它将跳回对循环的测试表达式再次求值。
Continue 语句的语法为:
continue
for i in 1...5 { if i == 4 { continue } print("i = \(i)") }
运行该程序时,输出为:
i = 1 i = 2 i = 3 i = 5
在上面的程序中,要迭代的序列的范围是1到5。
i 的值设置为range(1)中的第一个数字,并在每次迭代时更新为范围的下一个数字。
循环还包含表达式 i = = 4的 if 语句。当表达式求值为 true 时(在第4次迭代中)执行 continue 语句,跳过语句print("i = \(i)") 的执行 ,转到下一次迭代(i = 5)。
var intialLevel:Int = -5, finalLevel:Int = 2 var currentLevel:Int = intialLevel while currentLevel < finalLevel { if intialLevel < 0 { print("起始级别必须为正数") intialLevel = 0 currentLevel = intialLevel continue //跳过当前执行 } currentLevel += 1 print("next level") } print("在while循环之外")
运行该程序时,输出为:
起始级别必须为正数 next level next level 在while循环之外
在以上程序中,while循环运行直到 currentLevel小于finalLevel。由于intialLevel分配的值是-5且小于0,因此执行 if 内部语句。
当程序到达continue语句时,它跳过while循环的语句,然后跳来再次检查 currentLevel<finalLevel 的条件。
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语句中引用它。
这里,label是一个标识符。当continue语句执行时,程序将跳过循环中coe的其余部分,并跳转到label开始的语句。
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...2 和 innerloop: for i in 1...5。
标签名称outerloop和innerloop可以与continue语句一起使用。
在程序中,我们使用了continue outerloop 语句来跳过内外循环中语句的执行。在这个过程中,i 和 j的值都会更新为范围内的下一个数字