使用循环或条件语句时,可能需要跳过循环内的某些语句或立即终止循环,而不检查测试表达式
在这种情况下,将使用break和Continue语句。您将在下一章中了解继续声明。
break语句停止执行循环或switch语句。然后,它跳转到loop或switch语句之后的下一条语句。
break语句的语法为:
break
break语句如何工作?
示例1:for循环中的Swift break语句
for i in 1...5 {
if i == 4 {
break
}
print("i = \(i)")
}
print("The end")
运行该程序时,输出为:
i = 1
i = 2
i = 3
The end
在上面的程序中,要迭代的序列的范围是1到5。
i的值设置为范围(1)中的第一个数字,并在每次迭代时更新为范围的下一个数字。
该循环还包含一个表达式i == 4
的if语句。该表达式在被评估为true时(第4次迭代)执行break
语句,并且for-in循环终止。
然后,它跳到循环外面以打印End 。
示例2:while循环中的Swift break语句
var currentLevel:Int = 1, finalLevel:Int = 2
var isLifeAvailable = true
while (isLifeAvailable) {
if currentLevel > finalLevel {
print("Game Completed. No level remaining")
break
}
//play game and go to next level
currentLevel += 1
print("next level")
}
print("outside of while loop")
运行该程序时,输出为:
next level
next level
Game Completed. No level remaining
outside of while loop
在上面的程序中,while循环的测试表达式始终为true
。
当currentLevel大于finalLevel时 , break
执行if块内的break
语句。然后,程序退出(终止)while循环,并在循环之后执行语句,即print("outside of while loop")
。
示例3:带有嵌套循环的Swift break语句
for j in 1...2 {
for i in 1...5 {
if i == 4 {
break
}
print("i = \(i)")
}
print("j = \(j)")
}
运行该程序时,输出为:
i = 1
i = 2
i = 3
j = 1
i = 1
i = 2
i = 3
j = 2
在上面的程序中, if i == 4
内的break
语句仅终止for i in 1...5
的内部循环的执行。但是,它将继续执行for j in 1...2
的外循环。
但是,如果您也想for j in 1...2
break
for j in 1...2
的外循环for j in 1...2
该怎么办。为此,我们在Swift中使用带标签的语句。
带标记的声明
前缀为(label:Statement)形式的语句称为带标签的语句。标签是一个标识符,您可以稍后在break或continue语句中引用它。要了解有关标记语句的更多信息,请访问Swift标记语句 。
带标签的带有break的语句如何工作?
在此, 标签是标识符。当执行break
语句时,它将终止label内的循环,并且程序将立即跳到带有标签的语句之后的语句。
示例4:带有中断的标记语句
outerloop: for j in 1...2{
innerloop: for i in 1...5 {
if i == 4 {
break outerloop
}
print("i = \(i)")
}
print("j = \(j)")
}
运行该程序时,输出为:
i = 1
i = 2
i = 3
在上面的程序中,有两个标记的语句outerloop: for j in 1...2
和innerloop: for i in 1...5
。
标签名称externalloop和innerloop可以与break
语句一起使用。
语句break outerloop
终止两个循环并结束程序。
如果您熟悉其他编程语言,例如C,C++,Java等,则使用break
语句终止switch语句。但是在Wwift中,switch语句在第一个匹配的switch用例完成后立即完成其执行。因此,在Swift的switch案例中添加break是可选的。要了解更多信息,请访问Swift switch语句。