close

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是否成立。

 

arrow
arrow
    全站熱搜

    Eason 發表在 痞客邦 留言(0) 人氣()