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 分支的模式也可以是一個值的區間)
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 是否都可用。