Swift 入門指南 V1.00 - 單元 6 - 迴圈




程式 (program) 中的迴圈 (loop) 就是在特定程式區塊 (block) 中,重複執行相同的工作



Swift 中有四種迴圈,分別是 while 迴圈 (while loop) 、 do-while 迴圈 (do-while loop) 、 for 迴圈 (for loop) 及 for-in 迴圈 (for-in loop) ,四種迴圈可以互相替代,端視自己喜歡用哪一種囉!我們先來看看 while 迴圈的寫法


var i1 = 0 // 設定控制變數
var sum1 = 0
while i1 <= 10 { // 條件
   // 迴圈工作區
   sum1 += i1
   i1++ // 調整控制變數值
}
println(sum1)

這個迴圈所進行的工作很簡單,就是計算正整數 010 的總和,計算完成後印出結果。迴圈有三個地方要注意


  • 設定控制變數
  • 條件
  • 調整控制變數值

while 迴圈的控制變數 (control variable) 必須在 while 之前就先設定好,此例中將控制變數 i1 設定為 10 。然後進入 while 的地方,條件 (condition) 就在 while 之後的運算式 (expression) 中,此例的條件為當控制變數 i1 小於 10 時,迴圈便會重複執行。迴圈工作區,也就是 while 之後用大括弧圍住的程式區塊,這裡,我們只有簡單的印出控制變數 i1 的值,另外,最後需要有調整控制變數值的地方。


輸入到 Playground 中的結果如下



do-while 迴圈是先進行迴圈工作的第一次,工作結束後才進行條件檢查,我們將上例用 do-while 改寫,如下


var i2 = 0
var sum2 = 0
do {
   sum2 += i2
   i2++
while i2 <= 10
println(sum2)

輸入到 Playground 中的結果如下



for 迴圈則是把控制變數的設定、迴圈結束條件、控制變數的調整全都寫在 for 之後,如下


var i3: Int
var sum3 = 0
for i3 = 0; i3 <= 10; i3++ {
   sum3 += i3
}
println(sum3)

輸入到 Playground 中的結果如下



for-in 迴圈用於集合體型態 (collection type) ,例如


var i4: Int
var sum4 = 0
for i4 in 0...10 {
   sum4 += i4
}
println(sum4)

輸入到 Playground 中的結果如下



以上是具有明確重複次數的迴圈,這利用控制變數來記錄迴圈進行次數,如果需要不確定何時結束的迴圈,可以在條件的地方放 true ,確保迴圈會一直進行


while true {
   // 迴圈工作區
}

可是這樣會是無窮迴圈 (infinite loop) ,也就是迴圈沒有結束的一天,因此需要在迴圈中加上條件控制,只要符合某些條件就利用 break 跳出迴圈,例如


while true {
   if word == "quit" {
      break
   }
   
   // 迴圈工作區
}

此例假設要求使用者輸入,如果使用者輸入的是 quit ,就利用 break 跳出迴圈。


另有一個關鍵字 continue ,這用來使迴圈直接進行下一輪工作。

大部分重複性的工作都可用迴圈來進行,另一個用來進行程式任務的是函數 (function) ,下一個單元我們繼續討論如何定義函數。


中英文術語對照


程式program
迴圈loop
區塊block
while 迴圈while loop
do-while 迴圈do-while loop
for 迴圈for loop
for-in 迴圈for-in loop
控制變數control variable
條件condition
運算式expression
集合體型態collection type
無窮迴圈infinite loop

沒有留言: