控制流程

控制流程

本節(jié)包含內(nèi)容:

  • For循環(huán)
  • While循環(huán)
  • 條件語句
  • 控制轉(zhuǎn)移語句

For循環(huán)

for循環(huán)用來按照指定的次數(shù)多次執(zhí)行一系列語句。Swift 提供兩種for循環(huán)形式:

  • for-in用來遍歷一個區(qū)間(range),序列(sequence),集合(collection),系列(progression)里面所有的元素執(zhí)行一系列語句。
  • for條件遞增(for-condition-increment)語句,用來重復(fù)執(zhí)行一系列語句直到達(dá)成特定條件達(dá)成,一般通過在每次循環(huán)完成后增加計數(shù)器的值來實現(xiàn)。

While循環(huán)

While

while循環(huán)從計算單一條件開始。如果條件為true,會重復(fù)運行一系列語句,直到條件變?yōu)閒alse。

下面是一般情況下 while 循環(huán)格式:

while condition { statements }

Do-While

while循環(huán)的另外一種形式是do-while,它和while的區(qū)別是在判斷循環(huán)條件之前,先執(zhí)行一次循環(huán)的代碼塊,然后重復(fù)循環(huán)直到條件為false。

下面是一般情況下 do-while循環(huán)的格式:

do { statements } while condition

條件語句

Swift 提供兩種類型的條件語句:if語句和switch語句。通常,當(dāng)條件較為簡單且可能的情況很少時,使用if語句。而switch語句更適用于條件較復(fù)雜、可能情況較多且需要用到模式匹配(pattern-matching)的情境。

Switch

switch語句會嘗試把某個值與若干個模式(pattern)進(jìn)行匹配。根據(jù)第一個匹配成功的模式,switch語句會執(zhí)行對應(yīng)的代碼。當(dāng)有可能的情況較多時,通常用switch語句替換if語句。

與 C 語言和 Objective-C 中的switch語句不同,在 Swift 中,當(dāng)匹配的 case 分支中的代碼執(zhí)行完畢后,程序會終止switch語句,而不會繼續(xù)執(zhí)行下一個 case 分支。這也就是說,不需要在 case 分支中顯式地使用break語句。這使得switch語句更安全、更易用,也避免了因忘記寫break語句而產(chǎn)生的錯誤。

case 分支的模式也可以是一個值的區(qū)間。

可以使用元組在同一個switch語句中測試多個值。元組中的元素可以是值,也可以是區(qū)間。另外,使用下劃線(_)來匹配所有可能的值。

case 分支的模式可以使用where語句來判斷額外的條件。

控制轉(zhuǎn)移語句

控制轉(zhuǎn)移語句改變你代碼的執(zhí)行順序,通過它你可以實現(xiàn)代碼的跳轉(zhuǎn)。Swift有四種控制轉(zhuǎn)移語句。

  • continue
  • break
  • fallthrough
  • return

Continue

continue語句告訴一個循環(huán)體立刻停止本次循環(huán)迭代,重新開始下次循環(huán)迭代。就好像在說“本次循環(huán)迭代我已經(jīng)執(zhí)行完了”,但是并不會離開整個循環(huán)體。

Break

break語句會立刻結(jié)束整個控制流的執(zhí)行。當(dāng)你想要更早的結(jié)束一個switch代碼塊或者一個循環(huán)體時,你都可以使用break語句。

貫穿(Fallthrough)

Swift 中的switch不會從上一個 case 分支落入到下一個 case 分支中。相反,只要第一個匹配到的 case 分支完成了它需要執(zhí)行的語句,整個switch代碼塊完成了它的執(zhí)行。相比之下,C 語言要求你顯示的插入break語句到每個switch分支的末尾來阻止自動落入到下一個 case 分支中。Swift 的這種避免默認(rèn)落入到下一個分支中的特性意味著它的switch 功能要比 C 語言的更加清晰和可預(yù)測,可以避免無意識地執(zhí)行多個 case 分支從而引發(fā)的錯誤。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift 提供了類似 C 語言的流程控制結(jié)構(gòu),包括可以多次執(zhí)行任務(wù)的for和while循環(huán),基于特定條件選擇執(zhí)行...
    窮人家的孩紙閱讀 784評論 1 1
  • [The Swift Programming Language 中文版]本頁包含內(nèi)容: Swift提供了多種流程控...
    風(fēng)林山火閱讀 692評論 0 0
  • Swift提供了多種控制流聲明。包括while循環(huán)來多次執(zhí)行一個任務(wù);if,guard和switch聲明來根據(jù)確定...
    BoomLee閱讀 2,078評論 0 3
  • 本章將會介紹 控制流For-In 循環(huán)While 循環(huán)If 條件語句Switch 語句控制轉(zhuǎn)移語句 continu...
    寒橋閱讀 825評論 0 0
  • 最近幾個月我一直在斷斷續(xù)續(xù)的學(xué)習(xí)英語,雖然英語也學(xué)了10幾年了,但可怕的是還沒有達(dá)到量變到質(zhì)變的過程。我在思考其中...
    加油大末兒閱讀 503評論 0 0

友情鏈接更多精彩內(nèi)容