break语可用于之前介绍的循环语句和switch语。它的作用是能够立即终止整个控制流。可以根据你想要的在switch或循环语句里的任何地方终止整个执行。当在循环体中使用break,循环会立即停止,并将控制流带到循环体括号())后方的第一行代码里。循环体里其他的代码不会被执行,也不会开始下一次迭代。在switch里使用break,switch语句会立即终止,并将控制流带到switch语句括号())后方的第一行代码里。在switch默认在每一个分支之后隐式地添加了break,我们一定要显式地添加break才可以使程序运行不受影响。
在循环体中使用break语句也有两种方式:可以带有标签,也可以不带有标签。不带标签的break语句使程序跳出所在层的循环,而带标签的break语句使程序跳出标签指示的循环体。
1 | let scores = [60,89,76,68,96,86]
2 | for score in scores{
3 | if score == 68 {
4 | break
5 | }
6 | print("score is \(score)")
7 | }
运行结果:
score is 60
score is 89
score is 76
在上述程序代码中,当条件score == 68的时候执行break语句,break语句会终止循环,所以输出的结果只有68之前的数字。
break还可以配合标签使用,示例代码如下:
1 | var index = 0
2 | var item = 5
3 | labelA: for index in 1..<5{
4 | labelB: for item in 2...6{
5 | if item >= index {
6 | break labelA
7 | }
8 | print("(index,item)=\(index,item)")
9 | }
10 | }
运行结果:
(index,item)=(1, 2)
(index,item)=(1, 3)
(index,item)=(1, 4)
(index,item)=(1, 5)
(index,item)=(1, 6)
在不使用标签的情况下,break只会跳出最近的内循环第4行for循环。如果要跳出代码第3行的外循环,可以为外循环添加一个标签labelA:,然后在第5行的break语句后面指定这个标签labelA,这