while (条件) { 需要执行的代码; }
while
for迴圈在已知迴圈的初始和結束條件時非常有用。而上述忽略了條件的for迴圈容易讓人看不清楚迴圈的邏輯,此時用while迴圈更佳。
while迴圈只有一個判斷條件,條件滿足,就不斷循環,條件不滿足時則退出迴圈。例如我們要計算100以內所有奇數總和,可以用while迴圈實作:
var x = 0; var n = 99; while (n > 0) { x = x + n; n = n - 2; } x; // 2500
在迴圈內部變數n不斷自減,直到變成-1時,不再滿足while條件,循環退出。
實例
<!DOCTYPE html> <html> <body> <p>点击下面的按钮,只要 i 小于 5 就一直循环代码块。</p> <button onclick="myFunction()">点击这里</button> <p id="demo"></p> <script> function myFunction() { var x="",i=0; while (i<5) { x=x + "The number is " + i + "<br>"; i++; } document.getElementById("demo").innerHTML=x; } </script> </body> </html>
do ... while
最後一種循環是do { ... } while()循環,它和while循環的唯一區別在於,不是在每次循環開始的時候判斷條件,而是在每次迴圈完成的時候判斷條件:
var n = 0; do { n = n + 1; } while (n < 100); n; // 100
用do { ... } while()迴圈要小心,迴圈體會至少執行1次,而for和while迴圈則可能一次都不執行。
實例
<!DOCTYPE html> <html> <body> <p>点击下面的按钮,只要 i 小于 5 就一直循环代码块。</p> <button onclick="myFunction()">点击这里</button> <p id="demo"></p> <script> function myFunction() { var x="",i=0; do { x=x + "The number is " + i + "<br>"; i++; } while (i<5) document.getElementById("demo").innerHTML=x; } </script> </body> </html>