编辑这个页面须要登录或更高权限!
在本文中,您将学习使用break语句来转移程序的控制权。
使用循环或条件语句时,可能需要跳过循环内的某些语句或立即终止循环,而不检查测试表达式
在这种情况下,将使用 break 和 continue语句。您将在下一章中了解 continue 语句。
break 语句停止执行循环 或 switch语句。然后,它跳转到loop或switch语句之后的下一条语句。
break语句的语法为:
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 的值设置为range(1)中的第一个数字,并在每次迭代时更新为范围的下一个数字。
循环还包含一个if语句,表达式为 i==4。表达式在计算为 true 时(在第4次迭代时)执行break语句,for-in循环终止。
然后,它跳到循环外面以打印 The End。
var currentLevel:Int = 1, finalLevel:Int = 2 var isLifeAvailable = true while (isLifeAvailable) { if currentLevel > finalLevel { print("游戏结束,没有关卡了") break } //玩游戏,进入下一关 currentLevel += 1 print("下一关") } print("While循环之外")
运行该程序时,输出为:
下一关 下一关 游戏结束,没有关卡了 While循环之外
在上面的程序中,while 循环的测试表达式始终为true。
当 currentLevel 大于 finalLevel 时,将执行if块内的break语句。然后,程序退出(终止)while循环,并在循环之后执行语句,即 print("While循环之外")..
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 。
但是,如果您也想要 break 外循环 for j in 1...2呢?为此,我们在Swift中使用带标签的语句。
前缀为(label:Statement)形式的语句称为带标签的语句。标签是一个标识符,您可以稍后在break或continue语句中引用它。
在这里label是一个标识符。当break执行语句时,它将终止内的循环label,并且程序将立即跳转到带有标签的语句之后的语句。
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。
标签名称 outerloop 和 innerloop 可以与 break 语句一起使用。
该语句 break outerloop 终止两个循环并结束程序。
如果您熟悉其他编程语言,例如C,C ++,Java等,则使用break语句终止switch语句。 但是在Swift中,switch语句在第一个匹配的switch用例完成后立即完成其执行。 因此,在Swift的switch案例中添加break是可选的。要了解更多信息,请访问Swift switch语句。