Swift提供了類似C語言的流程式控制制結構,包括可以多次執行任務的for和while迴圈,基於特定條件選擇執行不同代碼分支的if和switch語句,還有控制流程跳轉到其他代碼的break和continue語句。 除了C裡面傳統的 for 條件遞增迴圈,Swift 還增加了 for-in 迴圈,用來更簡 ...
Swift提供了類似C語言的流程式控制制結構,包括可以多次執行任務的for和while迴圈,基於特定條件選擇執行不同代碼分支的if和switch語句,還有控制流程跳轉到其他代碼的break和continue語句。
除了C裡面傳統的 for 條件遞增迴圈,Swift 還增加了 for-in 迴圈,用來更簡單地遍曆數組(array),字典(dictionary),範圍(range),字元串(string)和其他序列類型。 Swift 的 switch 語句比 C 語言中更加強大。在 C 語言中,如果某個 case 不小心漏寫了 break,這個 case 就會“掉入”下一個 case,Swift 無需寫 break,所以不會發生這種“掉入”的情況。Case 還可以匹配更多的類型模式,包括範圍(range)匹配,元組(tuple)和特定類型的描述。switch case 語句中匹配的值可以是由 case 體內部臨時的常量或者變數決定,也可以由 where 分句描述更複雜的匹配條件。 For-In迴圈 它可以遍曆數字範圍,數組元素,字元串的字元。 遍歷範圍for index in 1...5 {
print("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25
遍曆數組
let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
print("Hello, \(name)!")
}
// Hello, Anna!
// Hello, Alex!
// Hello, Brian!
// Hello, Jack!
遍歷字典
let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
for (animalName, legCount) in numberOfLegs {
print("\(animalName)s have \(legCount) legs")
}
// ants have 6 legs
// cats have 4 legs
// spiders have 8 legs
While迴圈
While 迴圈運行一系列語句直到條件變成 false。這類迴圈適合使用在第一次迭代前迭代次數未知的情況下。swift提供2種while迴圈(while,repeat-while)。
while
普通while迴圈,在迭代前檢查條件是否為true,是才會進行迭代
repeat-while
它和 while 的區別是在判斷迴圈條件之前,先執行一次迴圈的代碼塊,然後重覆迴圈直到條件為 false。
條件語句
if語句
和c一樣這裡不做介紹
switch語句
switch語句會嘗試把某個值與若幹個模式(pattern)進行匹配。根據第一個匹配成功的模式,switch語句會執行對應的代碼。當有可能的情況較多時,通常用switch語句替換if語句。
switch語句都由多個case構成。為了匹配某些更特定的值,Swift 提供了幾種更複雜的匹配模式switch語句必須是完備的。這就是說,每一個可能的值都必須至少有一個case塊與之對應。在某些不可能涵蓋所有值的情況下,你可以使用預設(default)塊滿足該要求,這個預設塊必須在switch語句的最後面。與C語言和Objective-C中的switch語句不同,在 Swift 中,當匹配的case塊中的代碼執行完畢後,程式會終止switch語句,而不會繼續執行下一個case塊。這也就是說,不需要在case塊中顯式地使用break語句。這使得switch語句更安全、更易用,也避免了因忘記寫break語句而產生的錯誤。