For-in循環
For-in一般用於需要重複執行的時候,在For-in重複執行的時候也可以加上if做判斷式。
舉例來說,如果今天我們有一個陣列,想知道陣列裡面有什麼樣的內容,
就可以透過For-in與Print來檢查,如下圖(terminator:" ,"的意思代表不換行,且每筆資料用逗點隔開)
如果搭配if判斷式會是怎麼樣的呈現呢?如下圖
這邊所判斷的依據很簡單,如果array[0]的值與右邊字串"Januaryyyyyy"相符為true
就會印出月份,否則則印出false(空隔純粹只是方便截圖調整位置可無視)
而最後的break代表著如果迴圈進入到else裡執行完print就把這個迴圈停止,
否則會印出12次false,沒有意義,我們只需要知道是否相符就好了。
While循環(While裡面又包含了Repeat-While)
如果只是單純想要重複執行幾次,那可以使用While,簡單來說就是更直覺。
在下面程式碼裡的意思是當number這個值小於30的時候,這個迴圈會一直執行,
所以每執行一次,就把number的值+1,而迴圈會在number等於30的時候停止。
同樣的狀況如果用For-in去做會變成怎麼樣呢?
而For-in的方式就不同於While,先看到for _ in 0...9這個部分,
首先這個底線,當然也可以像上面For in的範例一樣用i這樣看起來比較沒這麼抽象,
但當你使用了for i in 0...9,可是在接下來的程式碼之中都不使用這個i時,
Swift就會貼心的跳出提醒,告知:如果這個常數接下來不會使用,可以用底線_代替,
所以這就是底線_的用處,用來替代不會用到的常數/變數。
而0...9的意思則是告知for in 接下來我們要執行10次,最後的結果等同於While。
在某些時候用什麼方式對自己來說最直觀且便利,可以自己多加嘗試,沒有絕對的好與壞。
Repeat-While
其實用法跟While很類似,只是多了一個步驟,就是每當While執行之前,
Repeat裡面所寫的程式碼,都會先被執行,直到等於While的條件達成。