控制传输语句通过无条件的将控制权从一段代码转移到另一段代码来更改代码的执行顺序。Swift提供五种类型的控制传输语句:
continue : 继续,continue语句告诉循环停止它正在做的事情,并在循环的下一次迭代开始时重新开始。它说“我完成了当前的循环迭代”,没有完全离开循环。
![](https://img.haomeiwen.com/i1240555/48711ea095217d14.png)
break : break语句会立即结束整个控制流语句的执行。当你想提前终止Switch或循环语句的执行时,可以在Switch或循环语句中使用break语句。
中断循环声明:当在循环语句中使用时,break立即结束循环的执行,并在循环关闭大括号(})后将控制权转移到代码。不会从循环的当前迭代中执行进一步的代码,也不会启动循环的进一步迭代。
中断开关声明:当在switch语句内使用时,break会导致switch语句立即结束其执行,并在switch语句的闭合大括号(})后将控制权转移到代码。这样的特性能够被用来匹配或者忽略一个或多个分支。由于 Swift 的switch须要包括全部的分支并且不同意有为空的分支,有时为了使你的意图更明显,须要特意匹配或者忽略某个分支。那么当你想忽略某个分支时,能够在该分支内写上break语句。当那个分支被匹配到时,分支内的break语句马上结束switch代码块。
![](https://img.haomeiwen.com/i1240555/0d70b495373b8a59.png)
fallthrough : 贯穿。swift中的Switch不会从一个case分支落入下一个case分支中。也就说,一旦第一个case执行完毕,整个Switch语句也就执行完毕。相比之下,C 语言要求你显示的插入break语句到每一个switch分支的末尾来阻止自己主动落入到下一个 case 分支中。Swift 的这样的避免默认落入到下一个分支中的特性意味着它的switch 功能要比C 语言的更加清晰和可预測,能够避免无意识地运行多个 case 分支从而引发的错误。
fallthrough关键字不会检查它下一个将会落入运行的case 中的匹配条件。fallthrough简单地使代码运行继续连接到下一个 case 中的运行代码,这和 C 语言标准中的switch语句特性是一样的。
return : return语句用于在函数或方法的实现中将控制权传递给调用者,接着程序将会从调用者的位置继续向下执行。当return语句后面带表达式时,表达式的值将会返回给调用者。如果表达式值的类型与调用者期望的类型不匹配,Swift 则会在返回表达式的值之前将表达式值的类型转换为调用者期望的类型。
而当只写return时,仅仅是将控制权从该函数或方法传递给调用者,而不返回一个值。(这就是说,该函数或方法的返回类型为Void或())
throw : throw语句在使用抛出函数传播错误中描述。具体请看错误处理。
带标签的语句
在Swift中,您可以将循环和条件语句嵌套在其他循环和条件语句中,以创建复杂的控制流结构。然而,循环和条件语句都可以使用break语句过早地结束其执行。因此,明确表示您希望break语句终止哪个循环或条件语句有时很有用。同样,如果您有多个嵌套循环,明确continue语句应该影响哪个循环可能是有用的。
break 标签名
continue 标签名
网友评论