JavaScript提供完全控制來處理迴圈和switch語句。可能有一種情況,當你需要退出一個迴圈,但未達到其底部。也可能有一種情況,當要跳過的碼塊的一部分,並直接開始下一個疊代。
為了處理這些情況下,JavaScript提供了break和continue語句。這些語句是用來馬上退出任何迴圈或啟動迴圈的下一次疊代。
break語句,這是簡單地用switch語句介紹,用於提前退出迴圈,打破封閉的花括號。
這個例子說明了如何使用break語句同while迴圈。請注意迴圈打破了初期由x到5,document.write(..) 語句的正下方,以右大括號:
<script type="text/javascript"> <!-- var x = 1; document.write("Entering the loop<br /> "); while (x < 20) { if (x == 5){ break; // breaks out of loop completely } x = x + 1; document.write( x + "<br />"); } document.write("Exiting the loop!<br /> "); //--> </script>
這將產生以下結果:
Entering the loop 2 3 4 5 Exiting the loop!
我們已經看到break語句在switch語句中使用。
continue語句告訴直譯器立即啟動迴圈的下一次疊代,並跳過其餘的程式碼塊。
當遇到continue語句,程式流程將立即轉移到迴圈檢查表示式,如果條件保持真,那麼就開始下一個疊代,否則控制退出迴圈。
這個例子說明使用continue語句同while迴圈。請注意continue語句用於跳過列印時指數變數x到達5:
<script type="text/javascript"> <!-- var x = 1; document.write("Entering the loop<br /> "); while (x < 10) { x = x + 1; if (x == 5){ continue; // skill rest of the loop body } document.write( x + "<br />"); } document.write("Exiting the loop!<br /> "); //--> </script>
這將產生以下結果:
Entering the loop 2 3 4 6 7 8 9 10 Exiting the loop!
從JavaScript1.2開始,標籤可以與break及continue使用,繼續更精確地控制流程。
標籤是簡單的識別符號隨後被施加到一個語句或程式碼塊冒號。看到兩個不同的例子來了解標籤使用突破,並繼續。
註:換行符是不是繼續還是分手宣告,其標籤名稱之間允許的。此外,不應該有一個標籤名稱和相關聯的迴路之間的任何其它宣告。
<script type="text/javascript"> <!-- document.write("Entering the loop!<br /> "); outerloop: // This is the label name for (var i = 0; i < 5; i++) { document.write("Outerloop: " + i + "<br />"); innerloop: for (var j = 0; j < 5; j++) { if (j > 3 ) break ; // Quit the innermost loop if (i == 2) break innerloop; // Do the same thing if (i == 4) break outerloop; // Quit the outer loop document.write("Innerloop: " + j + " <br />"); } } document.write("Exiting the loop!<br /> "); //--> </script>
這將產生以下結果:
Entering the loop! Outerloop: 0 Innerloop: 0 Innerloop: 1 Innerloop: 2 Innerloop: 3 Outerloop: 1 Innerloop: 0 Innerloop: 1 Innerloop: 2 Innerloop: 3 Outerloop: 2 Outerloop: 3 Innerloop: 0 Innerloop: 1 Innerloop: 2 Innerloop: 3 Outerloop: 4 Exiting the loop!
<script type="text/javascript"> <!-- document.write("Entering the loop!<br /> "); outerloop: // This is the label name for (var i = 0; i < 3; i++) { document.write("Outerloop: " + i + "<br />"); for (var j = 0; j < 5; j++) { if (j == 3){ continue outerloop; } document.write("Innerloop: " + j + "<br />"); } } document.write("Exiting the loop!<br /> "); //--> </script>
這將產生以下結果:
Entering the loop! Outerloop: 0 Innerloop: 0 Innerloop: 1 Innerloop: 2 Outerloop: 1 Innerloop: 0 Innerloop: 1 Innerloop: 2 Outerloop: 2 Innerloop: 0 Innerloop: 1 Innerloop: 2 Exiting the loop!