前面幾個章節,都有提到for in Loop結構的使用,for in 結構需要兩個參數,第一個參數是一個臨時參數,第二個可以是一個集合類型的實例,也可以是一個範圍區間,而第一個參數便會接受來自第二個參數所給予的值。
for index in 1...5 {
print(index)
}
// 依次印出 1 2 3 4 5
在進行for in 的時候,開發者假設不需要抓出來的值的話,第一個參數的位置可以使用匿名參數來代替,在Swift 中使用 _ 來代表匿名函數。
var sum = 0
for _ in 1...3 {
sum += 1
}
print(sum)
// 印出 3
對集合的遍歷是for in常用的場景之一。
var collection1:Array = [1,2,3,4]
var collection2:Dictionary = [1:1,2:2,3:3,4:4]
var collection3:Set = [1,2,3,4]
for obj in collection1 {
print(obj)
}
// 依次印出 1 2 3 4
for (key, value) in collection2 {
print(key, value)
}
// 依次印出2 2 4 4 3 3 1 1
for obj in collection3 {
print(obj)
}
// 依次印出 1 2 3 4
while與repeat while在Swift跟其他程式語言無異,只是Swift將do while改成repeat while。
在while結構中,while後面需要填寫一個邏輯值或是一個條件,如果為true則會進入循環,如果循環依然為真,則再次進入循環。循環是根據條件來判斷是否進入循環。
var i = 0
while i < 10 {
print("while", i)
i += 1
}
//while 0
//while 1
//while 2
//while 3
//while 4
//while 5
//while 6
//while 7
//while 8
//while 9
若條件或是判斷的設定不正確,變成一直成立則會進入無限迴圈
repeat while結構則是會先執行一次,在進行條件的判斷。
var j = 0
repeat {
print("repeat while")
j += 1
} while j < 10
//repeat while
//repeat while
//repeat while
//repeat while
//repeat while
//repeat while
//repeat while
//repeat while
//repeat while
//repeat while
條件是j < 10 但因為是repeat 所以是印出10次
兩張圖表示了,兩者的差別。
接下來,是流程控制的介紹