位置:首頁 > 高級語言 > Swift教學 > Swift控製傳遞語句

Swift控製傳遞語句

控製傳遞語句

通過無條件地把控製權從一片代碼傳遞到另一片代碼,控製傳遞語句能夠改變代碼執行的順序。Swift 提供四種類型的控製傳遞語句:break語句、continue語句、fallthrough語句和return語句。


控製傳遞語句(Control Transfer Statement) 語法
控製傳遞語句 → break語句
控製傳遞語句 → continue語句
控製傳遞語句 → fallthrough語句
控製傳遞語句 → return語句
 

Break 語句

break語句用於終止循環或switch語句的執行。使用break語句時,可以隻寫break這個關鍵詞,也可以在break後麵跟上標簽名(label name),像下麵這樣:

break
break label name

break語句後麵帶標簽名時,可用於終止由這個標簽標記的循環或switch語句的執行。

而當隻寫break時,則會終止switch語句或上下文中包含break語句的最內層循環的執行。

在這兩種情況下,控製權都會被傳遞給循環或switch語句外麵的第一行語句。

關於使用break語句的例子,詳情參見控製流一章的 Break 和帶標簽的語句


Break 語句語法
break語句 → break 標簽名稱 可選
 

Continue 語句

continue語句用於終止循環中當前迭代的執行,但不會終止該循環的執行。使用continue語句時,可以隻寫continue這個關鍵詞,也可以在continue後麵跟上標簽名(label name),像下麵這樣:

continue
continue label 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
return expression

return語句後麵帶表達式時,表達式的值將會返回給調用者。如果表達式值的類型與調用者期望的類型不匹配,Swift 則會在返回表達式的值之前將表達式值的類型轉換為調用者期望的類型。

而當隻寫return時,僅僅是將控製權從該函數或方法傳遞給調用者,而不返回一個值。(這就是說,該函數或方法的返回類型為Void())


Return 語句語法
return語句 → return 表達式 可選