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