控制转移语句能够改变程序的执行顺序,可以实现程序的跳转。Swift有3种控制转移语句: continue、break、fallthrough。
continue语句用来告诉循环体中止现在的操作,然后开始迭代下一个循环。但不会离开循环体。在for-condition-increment循环中,continue语句
结束本次循环,跳过循环体中尚未执行的语句,接着执行终止条件的判断, 以决定是否继续循环。对于for语句,在进行终止条件的判断前,还要先执行迭代语句。
在循环体中使用continue语句有两种方式可以带有标签,也可以不带标签。语法格式如下:
continue //不带标签
continue label //带标签,label是标签名
下面我们先来学习一下不带标签的continue语句。
1 |foriin 1…10{
2 |if i%2==0{
3 |continue
4 |}
5 | print("i的值:(\i)")
6 |}
输出结果:
i的值:1
i的值:3
i的值:5
i的值:7
i的值:9
在上述程序代码中,当满足条件i%2==0的时候,则执行continue语句,continue语句会终止本次循环, 循环体中continue之后的语句将不再执行,接着进行下次循环,所以输出结果中不会出现1到10之间的偶数。
接下来我们来看一下带标签的continue语句,定义标签的时候后面要跟一个冒号。不带标签的continue语句会终止本次循环。而带标签的continue语句会跳出其后面指定标签语句。
带标签的continue语句示例代码如下:
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 | continue 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)
(index,item)=(3, 2)
(index,item)=(4, 2)
(index,item)=(4, 3)
在不使用表标签的情况下,continue只会跳出最近的内循环也就是第4句代码的for循环,如果要跳出代码第3行的外循环,可以为外循环添加一个标签labelA:,然后在第6行的continue语句后面指定这个标签labelA,这样当条件执行continue语句时 ,程序就会跳转出外循环了。