JavaScript for 迴圈語法

for 迴圈用來重覆執行 for 區塊內的語句。

語法:

for (initialExpression; condition; incrementExpression) {
  // statements
}
  • 其中 initialExpression 是初始化語句,在迴圈第一次執行之前,會先執行 initialExpression
  • 在每一次執行迴圈之前,都會先執行 condition 條件式,如果值是 true 則執行迴圈,false 則跳出 for 迴圈
  • 而在每一次執行完迴圈之後,都會執行 incrementExpression 語句

例如:

var counter = 0;
for (var i = 0; i < 5; i++) {
    counter += i;
}
  • 在迴圈開始之前,會先初始化變數 i = 0
  • 當每一次迴圈開始執行之前,會判斷 i 是否小於 5,如果大於 5 則跳出迴圈,小於 5 則執行迴圈內容
  • 而每當執行完一次迴圈後,會將變數 i 加 1
  • 所以每一個迴圈,變數 i 分別會是 0, 1, 2, 3, 4, 5,直到 i 的值變成 5 時則跳出迴圈

所以上面的迴圈執行完後,最後 counter 的值會是 10!

另外,在 initialExpression 語句中,你還可以用逗點 , 隔開多個初始化語句。例如:

for (var i = 0, j=10; i < 5; i++) {
    // .....
}

你也可以省略 initialExpression 或 incrementExpression 語句。例如:

var i = 0;
var counter = 0;
for (; i < 5;) { 
    counter += i;
    i += 1;
}

你甚至可以省略全部語句 initialExpression, condition, incrementExpression,這其實就是無窮迴圈 (infinite loop) 的意思。例如:

var i = 0;
var counter = 0;
for (;;) {
    counter += i;
    i += 1;
    if (i >= 5) {
        // 如果你沒用 break 跳出 for 迴圈,則整個程式會卡在迴圈裡面出不去喔
        break;
    }
}

break

break 用來跳出整個 for 迴圈,讓程式繼續往下執行。

continue

continue 用來讓程式跳過迴圈剩餘的程式碼,直接執行下一次迴圈。例如:

var counter = 0;
for (var i = 0; i < 5; i++) {
    if (i < 3) {
        continue;
    }
    counter += i;
}

則當 for 迴圈執行完後 counter 的值會是 7,因為當 i 等於 0, 1, 2 的時候都被跳過 continue 之後的程式碼,直到 i 等於 3, 4 的時候才會執行迴圈內容。