Swift提供了一些跟C類似的控制流程,包含for, while, if, guard, 還有switch。
除了這些基本的,Swift還提供了for-in迴圈讓我們能夠更簡單的從array, dictionary, ranges, strings來取值。
For loops
Swift提供兩種迴圈, for-in loop 及for loop。
for-in可以簡單的取出範圍內的值出來,如:
for index in 1...5 {
print(index)
}
他會從1~5執行一次,因此若我們對array沒有特別開始的地方要處理,建議使用for-in來取待for。
上例中,範圍也可用變數/常數取帶:
let myNum = 5
for index in 1...myNum {
print(index)
}
若是我們只是需要執行想要的數量,不需要取值,用"_"取代即可。
let base = 3
let power = 10
var answer = 1
for _ in 1...power {
answer *= base
}
//以上例子為取3的十次方,因不需要index,用_取代。
for-in 可以直接取array or dictionary的值:
let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
print(name)
}
let numOfLegs = ["spider": 8, "ant": 6, "cat": 4]
for (animalName, legCount) in numOfLegs {
print("\(animalName)s have \(legCount) legs")
}
Swift也可用傳統的for loop:
for initialization; condition; increment {
statements
}
for var index = 0; index < 3; ++index{
print(index)
}
// print 012
for loop其實幾乎可以被for-in所取代,除了index是從大到小:
for var index = 2; index >=0; --index{
print(index)
}
// print 210
While loops
While迴圈會一直執行statements,直到判定條件為false。當我們不清楚數量時可以用while來處理。Swift提供了兩種while loop:
while --> 會在一開始就判斷條件是否成立。
repeat-while --> 會在statements執行完成之後再判斷條件。
While loop的格式:
while condition {
statements
}
如果condition為true,裡面的statements就會一直被執行,直到condition為false。
repeat while的格式:
repeat {
statements
} while condition
簡來來說這兩個的差異在於,repeat while一定會先執行statement一次才去判斷condition是否成立。