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 表達式 可選