Swift控制轉移語句
控制傳遞語句
通過無條件地把控制權從一片代碼傳遞到另一片代碼,控制傳遞語句能夠改變代碼執行的順序。Swift 提供四種類型的控制傳遞語句:break
語句、continue
語句、fallthrough
語句和return
語句。
控制傳遞語句(Control Transfer Statement) 語法
控制傳遞語句 → break語句
控制傳遞語句 → continue語句
控制傳遞語句 → fallthrough語句
控制傳遞語句 → return語句
Break 語句
break
語句用於終止循環或switch
語句的執行。使用break
語句時,可以只寫break
這個關鍵詞,也可以在break
後面跟上標籤名(label name),像下面這樣:
break
breaklabel name
當break
語句後面帶標籤名時,可用於終止由這個標籤標記的循環或switch
語句的執行。
而當只寫break
時,則會終止switch
語句或上下文中包含break
語句的最內層循環的執行。
在這兩種情況下,控制權都會被傳遞給循環或switch
語句外面的第一行語句。
關於使用break
語句的例子,詳情參見控制流一章的 Break 和帶標籤的語句。
Break 語句語法
break語句 → break 標籤名稱 可選
Continue 語句
continue
語句用於終止循環中當前迭代的執行,但不會終止該循環的執行。使用continue
語句時,可以只寫continue
這個關鍵詞,也可以在continue
後面跟上標籤名(label name),像下面這樣:
continue
continuelabel name
當continue
語句後面帶標籤名時,可用於終止由這個標籤標記的循環中當前迭代的執行。
而當只寫break
時,可用於終止上下文中包含continue
語句的最內層循環中當前迭代的執行。
在這兩種情況下,控制權都會被傳遞給循環外面的第一行語句。
在for
語句中,continue
語句執行後,increment 表達式還是會被計算,這是因爲每次循環體執行完畢後increment 表達式都會被計算。
關於使用continue
語句的例子,詳情參見控制流一章的 Continue 和帶標籤的語句。
Continue 語句語法
continue語句 → continue 標籤名稱 可選
Fallthrough 語句
fallthrough
語句用於在switch
語句中傳遞控制權。fallthrough
語句會把控制權從switch
語句中的一個 case 傳遞給下一個 case 。這種傳遞是無條件的,即使下一個 case 的模式與switch
語句的控制表達式的值不匹配。
fallthrough
語句可出現在switch
語句中的任意 case 裏,但不能出現在最後一個 case 分支中。同時,fallthrough
語句也不能把控制權傳遞給使用了可選綁定的 case 分支。
關於在switch
語句中使用fallthrough
語句的例子,詳情參見控制流一章的控制傳遞語句。
Fallthrough 語句語法
fallthrough語句 → fallthrough
Return 語句
return
語句用於在函數或方法的實現中將控制權傳遞給調用者,接着程序將會從調用者的位置繼續向下執行。
使用return
語句時,可以只寫return
這個關鍵詞,也可以在return
後面跟上表達式,像下面這樣:
return
returnexpression
當return
語句後面帶表達式時,表達式的值將會返回給調用者。如果表達式值的類型與調用者期望的類型不匹配,Swift 則會在返回表達式的值之前將表達式值的類型轉換爲調用者期望的類型。
而當只寫return
時,僅僅是將控制權從該函數或方法傳遞給調用者,而不返回一個值。(這就是說,該函數或方法的返回類型爲Void
或()
)
Return 語句語法
return語句 → return 表達式 可選