五.控制流程/Control Flow

Swift提供了各種控制流程語句.這些包括:

while多次執行任務的循環;

if,guard以及switch基于某些條件執行不同代碼段的語句;

break和continue對執行流在你的代碼轉移到另一個點。

迅速還提供了for-in循環,可以很容易地遍歷數組,字典,范圍,字符串和其它序列。

一,for in

1.迭代/遍歷

數組
字典
范圍
下劃線省略,不需要的
半開
間距遍歷

二.while

while循環執行一組語句,直到條件變為false。當在第一次迭代開始之前不知道迭代次數時,最好使用這些循環。Swift提供兩種while循環:

while在每次通過循環的開始時評估其狀態。

repeat-while在每次通過循環結束時評估其狀態。

1.while

教程中舉了一個栗子,一個類似飛行棋的游戲,一條既定的路線(總數組),每次隨機一個要走的步數(+=),路線中有部分有升與降的通道(+/-),先走到算贏

游戲i
第一步
第二部
第三步

其實很簡單,總的來說就是創建一個固定數組,填充里面升降的數組,有正負零,然后while數組大于表格數則算到了,即每次加加后判斷

2.repeat-while

repeat-while,先執行一次,再判斷

三,條件聲明

Swift提供了兩種方法來為代碼添加條件分支:if語句和switch語句。通常情況下,您可以使用該if語句來評估簡單的條件,只有幾個可能的結果。該switch語句更適合于具有多個可能排列的更復雜條件,并且在模式匹配可以幫助選擇適當的代碼分支執行的情況下很有用。

1.if

用法與OC沒什么不同,只是判斷條件沒有括號

if用法

2.switch

與OC 有比較大的不同:

1.不需要break

2.case不能并列,只能在case后面并列,并用逗號隔開,詳見下面例子

錯誤的!!!!!
case并列多個正確用法

3.間隔匹配

case可以不是一個值,而是一個區間

4.元組

元組也可以匹配

與C不同,Swift允許多種switch情況考慮相同的值或值。實際上,在這個例子中,點(0,0)可以匹配所有四種情況。但是,如果可以進行多個匹配,則始終使用第一個匹配大小寫。點(0,0)首先匹配case (0, 0),因此所有其他匹配的情況都將被忽略。

5.值綁定

其實與元組類似,只是匹配一個就行,另外一個不需匹配,只做賦值操作

價值綁定

6.where 與switch配合使用

case:也可以做一個判斷條件

7.符合案例

換行
值綁定與多個條件并列

四.控制轉移

1.continue

導致循環的當前迭代立即結束,并直接跳轉到下一個迭代的開始。

2.break

語句立即結束整個控制流程語句的執行

3.fallthrough

執行下一個case

4.標簽語句

游戲改為必須最后停在最后一格,用標簽可以控制跳出哪個循環

5.提前退出/guard

一個guard語句,像一個if語句,根據表達式的布爾值執行語句。您使用guard語句要求條件必須為true,以便guard執行語句后的代碼。與if語句不同,guard語句總是有一個else子句 -else如果條件不為真,則子句中的代碼將被執行

與if相似

如果不符合條件,else則執行分支中的代碼。該分支必須傳輸控制以退出該guard語句出現的代碼塊。它可以做到這一點與控制權轉移的語句,如return,break,continue,或者throw,也可以調用一個函數或方法不返回,如fatalError(_:file:line:)。

6.檢查API可用性

在iOS10個macOS10.12以上適用
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容