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