當我們想要用程式重複執行同樣的動作時,可以用迴圈來重複執行同一組程式碼。而迴圈分為需要計算執行次數和不管次數持續執行兩種,今天要講的是需要計算執行次數的 for 迴圈。 for 迴圈會檢測條件是否為 True,如果條件為 true 就會執行 for 區塊的程式碼,一旦條件變成 false 就會停止。
for (initialExpression; condition; incrementExpression) {
// statements
}
for (var i = 0; i < 5; i++) {
console.log(i);
}
var i = 0
迴圈的初始條件,表示迴圈會從 0 開始算起。i < 5
迴圈內的程式碼會一直重複執行,直到 i 值不小於 5 為止。i++
每執行完一次迴圈,i 的值就會加 1。break 的作用是跳出整個 for 迴圈,像有時候在執行迴圈時只要找到第一個符合條件的值,後面就不用再繼續執行程式碼的時候就可以用 break 退出迴圈,但是 break 要加在對的位置上才有效!
假設要執行一個迴圈,每執行一次迴圈變數 counter 的值就會加 1 ,但當 counter 超過 11 時就停止迴圈。
var counter = 1;
for (var i = 0; ; i++) {
if (counter > 10){
console.log(counter);
break;
}
counter = counter + 1;
}
正確的作法是將 break 放在 if 判斷式裡面,當條件滿足counter > 10
就會終止迴圈,而 break;
之後的程式碼都不會執行,於是在迴圈執行第 11 次時印出 counter 的值後就跳出迴圈。
如果不小心把 break 放在 if 判斷式外面 & for 迴圈裡面,不管條件是否成立 for 迴圈都只會執行一次。
continue 的作用是讓程式跳過迴圈剩餘的程式碼,直接執行下一次迴圈。
var counter = 0;
for (var i = 0; i < 5; i++) {
if (i < 3) {
continue;
}
counter += i;
console.log(counter);
}
執行上面的程式碼會發現只印出 3 跟 7,因為 i 值在0、1、2時的動作都被跳過,只有在 i 等於 3、4 的時候才會執行程式,所以才會只印出兩次 counter 的值。