迴圈可以重複執行同一組程式碼,幫我們處理不斷重複的事情。迴圈會檢測條件,如果條件為 true
,便會執行程式碼;接著條件繼續被檢測、程式碼繼續執行,直到條件為 false
為止。
常見的迴圈有三種:
for
迴圈 - 需要以程式碼執行次數作為迴圈的條件。while
迴圈 - 不知道程式碼執行次數時使用,迴圈條件非計數器。do...while
迴圈 - 類似 while,但即使條件為 false 還是會執行程式碼至少一次。以下要介紹的都是以 for
迴圈為主。
for(var i=0 ; i < 3 ; i++){
console.log(i);
}
// 0,1,2
迴圈語法是這樣組成的:
var i = 0
- 建立初始條件,表示迴圈會從 0
開始算起。i < 某數值
- 判斷條件,表示迴圈內的程式碼會一直重複執行,直到 i
不再小於指定的數量。i++
- 更新條件,表示每執行過一次迴圈,i
就加 1。當 var i = 0;
的時候,i=i+1
跟 i+=1
跟 i++
意思一樣,答案都是 1(減法同理)。
var total = 501;
total += 1 //502
total = total + 1 //502
total++ //501,但下一次呼叫 total 時值就變成 502 了
在資料結構的交換上,陣列很常跟迴圈搭配使用,使用方法如下:
length
去查詢資料來源陣列的筆數。for
迴圈的條件中。i
這個變數作為索引值寫進程式碼區塊。var farmersTotal = farms.length;
for(var i = 0 ; i < farmersTotal ; i++){
console.log('第' + (i+1) + '個農場主人是' + farms[i].farmers)
}
從陣列資料庫裡,想要運用迴圈撈出特定條件的資料時,可以在迴圈內使用 if
判斷式。這種迴圈與函式的結合不只可以用來撈出資料,還可以做出各種判斷、賦予值、更改物件內的數值。在實作上,最好先寫出要達成的任務,再思考程式碼怎麼寫比較順。
//撈出哪些農場的小雞超過 100 隻以上
var farmersTotal = farms.length;
for( var i = 0 ; i < farmersTotal ; i++ ){
if(farm[i].chick>100){
console.log(farms[i].farmer + '的小雞超過 100 隻以上');
}
}