swift控制流

1>for循環

Swift 提供兩種for循環形式來按照指定的次數執行一系列語句:

第一是 for-in循環對一個集合里面的每個元素執行一系列語句。

第二是 for 循環,用來重復執行一系列語句直到達成特定條件達成,一般通過在每次循環完成后增加計數器的值來實現。

for initialization; condition; increment {? ??

? ? ? ? ? ? ? ? statements

? ? ?}

和 C 語言中一樣,分號將循環的定義分為 3 個部分,不同的是,Swift 不需要使用圓括號將“initialization; condition; increment”包括起來。

這個循環執行流程如下:

循環首次啟動時,初始化表達式( initialization expression )被調用一次,用來初始化循環所需的所有常量和變量。

條件表達式(condition expression)被調用,如果表達式調用結果為false,循環結束,繼續執行for循環關閉大括號(})之后的代碼。如果表達式調用結果為true,則會執行大括號內部的代碼。

執行所有語句之后,執行遞增表達式(increment expression)。通常會增加或減少計數器的值,或者根據語句輸出來修改某一個初始化的變量。當遞增表達式運行完成后,重復執行第 2 步,條件表達式會再次執行。

2>while循環

while循環運行一系列語句直到條件變成false。這類循環適合使用在第一次迭代前迭代次數未知的情況下。Swift 提供兩種while循環形式:

while循環,每次在循環開始時計算條件是否符合;

下面是一般情況下while循環格式:

while ? condition {? ? ??

? ? message

?}

repeat-while循環,每次在循環結束時計算條件是否符合。

下面是一般情況下repeat-while循環的格式:

?repeat {? ??

? ? ? message

} while condition

3>條件語句

Swift 提供兩種類型的條件語句:if語句和switch語句。通常,當條件較為簡單且可能的情況很少時,使用if語句。

if語句最簡單的形式就是只包含一個條件,當且僅當該條件為true時,才執行相關代碼:

let a = 1

if a > 2{

print("a是大于2的")

}?

switch語句更適用于條件較復雜、可能情況較多且需要用到模式匹配的情境。在 Swift 中,當匹配的 case 分支中的代碼執行完畢后,程序會終止switch語句,而不會繼續執行下一個 case 分支.每一個 case 分支都必須包含至少一條語句.(case 分支的模式也可以是一個值的區間)

上面那么寫是無效的,因為第一個case語句分支是空的


4>值綁定

case 分支的模式允許將匹配的值綁定到一個臨時的常量或變量,這些常量或變量在該 case 分支里就可以被引用了——這種行為被稱為值綁定(value binding)。

5>控制轉移語句

控制轉移語句改變你代碼的執行順序,通過它你可以實現代碼的跳轉。Swift 有五種控制轉移語句:

continue, break, fallthrough, return, throw

Continue

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

Break

break語句會立刻結束整個控制流的執行。當你想要更早的結束一個switch代碼塊或者一個循環體時,你都可以使用break語句。這種特性可以被用來匹配或者忽略一個或多個分支。因為 Swift 的switch需要包含所有的分支而且不允許有為空的分支,有時為了使你的意圖更明顯,需要特意匹配或者忽略某個分支。那么當你想忽略某個分支時,可以在該分支內寫上break語句。當那個分支被匹配到時,分支內的break語句立即結束switch代碼塊。

6>檢測 API 可用性

我們使用一個可用性條件在一個if或guard語句中去有條件的執行一段代碼,這取決于我們想要使用的 API 是否在運行時是可用的。編譯器使用從可用性條件語句中獲取的信息去驗證在代碼塊中調用的 API 是否都可用。

以上可用性條件指定了在 iOS 系統上,if段的代碼僅會在 iOS 9 及更高版本的系統上執行;在 OS X,僅會在 OS X v10.10 及更高版本的系統上執行。最后一個參數,*,是必須寫的,用于處理未來潛在的平臺。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Swift 提供了類似 C 語言的流程控制結構,包括可以多次執行任務的for和while循環,基于特定條件選擇執行...
    窮人家的孩紙閱讀 722評論 1 1
  • Swift提供了多種控制流聲明。包括while循環來多次執行一個任務;if,guard和switch聲明來根據確定...
    BoomLee閱讀 2,002評論 0 3
  • Swift提供了多種流程控制結構,包括可以多次執行任務的while循環,基于特定條件基于特定條件選擇執行不同代碼分...
    edison0428閱讀 1,294評論 0 0
  • Swift提供了各種控制流語句。 這些包括while循環來執行多次任務; if,guard和switch語句,以根...
    Joker_King閱讀 429評論 0 0