Swift提供了多種流程控制結(jié)構(gòu),包括可以多次執(zhí)行任務(wù)的while循環(huán),基于特定條件選擇執(zhí)行不同代碼分支的if、guard和switch語句,還有控制流程跳轉(zhuǎn)到其他代碼的break和continue語句。
Swift 還增加了for-in循環(huán),用來更簡單地遍歷數(shù)組(array),字典(dictionary),區(qū)間(range),字符串(string)和其他序列類型。
For-In 循環(huán)
與OC的相比功能更加泡兒否(powerful)-。-??!能夠遍歷區(qū)間、數(shù)組、字符串、字典。
While循環(huán)
- while循環(huán),每次在循環(huán)開始時計算條件是否符合;
- repeat-while循環(huán),每次在循環(huán)結(jié)束時計算條件是否符合。
注意: Swift語言的repeat-while循環(huán)合其他語言中的do-while循環(huán)是類似的。
If
這個語句已經(jīng)如此簡潔明了而眾所周知,不太好發(fā)揮,所以蘋果沒好意思該名-。-??!。
Switch
還是那句話,更加炮兒否,然而,副作用未知……
- 每個case可以包含多個模式,用逗號隔開,例如這樣:
let someCharacter: Character = "e"
switch someCharacter {
case "a", "e", "i", "o", "u":
print("\(someCharacter) is a vowel")
case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m",
"n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z":
print("\(someCharacter) is a consonant")
default:
print("\(someCharacter) is not a vowel or a consonant")
}
// 輸出 "e is a vowel"
- 不存在隱式的貫穿(No Implicit Fallthrough)
這真是極好的……跟break說NO!,case執(zhí)行完就終止switch語句,再也不用擔(dān)心霸(dai)氣(ma)一不小心側(cè)漏了
注意: 雖然在Swift中break不是必須的,但你依然可以在 case 分支中的代碼執(zhí)行完畢前使用break跳出,詳情請參見Switch 語句中的 break。
注意: 如果想要貫穿至特定的 case 分支中,請使用fallthrough語句,詳情請參考貫穿(Fallthrough)
每一個 case 分支都必須包含至少一條語句
case 分支的模式也可以是一個值的區(qū)間。
未完待續(xù)……