譯者按: 最好是不用,不過基礎知識要掌握。
- 原文: JavaScript: Continue vs Break - Learn the difference between the continue and break statements.
- 譯者: Fundebug
為了保證可讀性,本文采用意譯而非直譯。另外,本文版權歸原作者所有,翻譯僅用於學習。
在這篇文章中,我們會詳細介紹continue和break,分析它們的相同和不同之處,甚至用一些可運行的實例。
continue和break都是用於控制循環的。我們先來看一下他們的定義:
- Continue: 結束當前的執行,並繼續下一個循環。
- Break: 終止整個循環的執行。
注意:break還可以用在switch中,本文主要介紹在循環中的使用。
Continue
考慮如下代碼:
for (let i = 1; i <= 10; i++){ |
我們有一個簡單的for循環,該循環會執行10次,i的值從1一直遞增到10。每一次循環將當前i的值打印出來。執行結果如下:
1 |
如果我們只想打印偶數,應該如何做呢?使用continue可以很容易搞定。在每一次循環我們檢查是否為奇數,如果是,則跳出此次循環,繼續下一次。如果不是,則打印i的值。
for (let i = 1; i <= 10; i++){ |
執行結果如下:
2 |
記住,當使用continue關鍵字的時候,該次循環立即結束執行,continue往后的代碼不再被執行。
Break
我們使用相同的循環來做例子:
for (let i = 1; i <= 10; i++){ |
如果我們想在i的值為6的時候,終止整個循環。那么我們可以使用break:
for (let i = 1; i <= 10; i++){ |
如果執行上面的代碼,for循環會在i為6的時候終止執行,因此6也不會被打印到控制台。
1 |
JavaScript太靈(gui)活(yi)了,出了BUG你也不知道,不妨接入Fundebug線上實時監控。
嵌套For循環
值得注意的是,break和continue都只對當前循環有效。如果我們有嵌套循環,那么就要很小心了。不妨來看下面的例子:
for (let i = 0; i < 5; i++) { |
這里我們有兩個循環,每一個都會執行5次(0~4)。外層的循環在i是偶數的時候,跳過當前循環執行下一個。也就是說只有i為1或則3的時候,才會執行內層的循環。
內層的循環只要j的值為2,就終止了。因此,j只有0和1。
最終結果如下:
i = 1, j = 0 |
評論精選
-
[Nicu Micleușanu]:最好的策略是break和continue都不要用。如果你用了,證明你哪里搞錯了,嘗試換個方法。
-
[Brandon Morelli]: 我同意用函數式的方法更好,來避免使用for循環。不過呢,理解
continue和break的異同點還是很重要的,萬一哪天遇到了呢。
版權聲明: 轉載時請注明作者Fundebug以及本文地址: https://blog.fundebug.com/2018/03/05/javascript-continue-vs-break/

