Swift提供了各種控制流程語句.這些包括:
while多次執行任務的循環;
if,guard以及switch基于某些條件執行不同代碼段的語句;
break和continue對執行流在你的代碼轉移到另一個點。
迅速還提供了for-in循環,可以很容易地遍歷數組,字典,范圍,字符串和其它序列。
一,for in
1.迭代/遍歷
二.while
while循環執行一組語句,直到條件變為false。當在第一次迭代開始之前不知道迭代次數時,最好使用這些循環。Swift提供兩種while循環:
while在每次通過循環的開始時評估其狀態。
repeat-while在每次通過循環結束時評估其狀態。
1.while
教程中舉了一個栗子,一個類似飛行棋的游戲,一條既定的路線(總數組),每次隨機一個要走的步數(+=),路線中有部分有升與降的通道(+/-),先走到算贏
其實很簡單,總的來說就是創建一個固定數組,填充里面升降的數組,有正負零,然后while數組大于表格數則算到了,即每次加加后判斷
2.repeat-while
三,條件聲明
Swift提供了兩種方法來為代碼添加條件分支:if語句和switch語句。通常情況下,您可以使用該if語句來評估簡單的條件,只有幾個可能的結果。該switch語句更適合于具有多個可能排列的更復雜條件,并且在模式匹配可以幫助選擇適當的代碼分支執行的情況下很有用。
1.if
用法與OC沒什么不同,只是判斷條件沒有括號
2.switch
與OC 有比較大的不同:
1.不需要break
2.case不能并列,只能在case后面并列,并用逗號隔開,詳見下面例子
3.間隔匹配
4.元組
與C不同,Swift允許多種switch情況考慮相同的值或值。實際上,在這個例子中,點(0,0)可以匹配所有四種情況。但是,如果可以進行多個匹配,則始終使用第一個匹配大小寫。點(0,0)首先匹配case (0, 0),因此所有其他匹配的情況都將被忽略。
5.值綁定
其實與元組類似,只是匹配一個就行,另外一個不需匹配,只做賦值操作
6.where 與switch配合使用
7.符合案例
四.控制轉移
1.continue
導致循環的當前迭代立即結束,并直接跳轉到下一個迭代的開始。
2.break
語句立即結束整個控制流程語句的執行
3.fallthrough
4.標簽語句
5.提前退出/guard
一個guard語句,像一個if語句,根據表達式的布爾值執行語句。您使用guard語句要求條件必須為true,以便guard執行語句后的代碼。與if語句不同,guard語句總是有一個else子句 -else如果條件不為真,則子句中的代碼將被執行
如果不符合條件,else則執行分支中的代碼。該分支必須傳輸控制以退出該guard語句出現的代碼塊。它可以做到這一點與控制權轉移的語句,如return,break,continue,或者throw,也可以調用一個函數或方法不返回,如fatalError(_:file:line:)。
6.檢查API可用性