在這篇文章中,我們會(huì)詳細(xì)介紹continue
和break
,分析它們的相同和不同之處,甚至用一些可運(yùn)行的實(shí)例。
continue
和break
都是用于控制循環(huán)的。我們先來看一下他們的定義:
- Continue:結(jié)束當(dāng)前的執(zhí)行,并繼續(xù)下一個(gè)循環(huán)。
- Break:終止整個(gè)循環(huán)的執(zhí)行。
注意:break
還可以用在switch
中,本文主要介紹在循環(huán)中的使用。
Continue
考慮如下代碼:
for (let i = 1; i <= 10; i++) { console.log(i); }
我們有一個(gè)簡單的 for 循環(huán),該循環(huán)會(huì)執(zhí)行 10 次,i 的值從 1 一直遞增到 10。每一次循環(huán)將當(dāng)前 i 的值打印出來。執(zhí)行結(jié)果如下:
如果我們只想打印偶數(shù),應(yīng)該如何做呢?使用continue
可以很容易搞定。在每一次循環(huán)我們檢查是否為奇數(shù),如果是,則跳出此次循環(huán),繼續(xù)下一次。如果不是,則打印 i 的值。
for (let i = 1; i <= 10; i++){ if (i % 2 == 1) continue; console.log(i); }
執(zhí)行結(jié)果如下:
記住,當(dāng)使用continue
關(guān)鍵字的時(shí)候,該次循環(huán)立即結(jié)束執(zhí)行,continue
往后的代碼不再被執(zhí)行。
Break
我們使用相同的循環(huán)來做例子:
for (let i = 1; i <= 10; i++) { console.log(i); }
如果我們想在 i 的值為 6 的時(shí)候,終止整個(gè)循環(huán)。那么我們可以使用break
:
for (let i = 1; i <= 10; i++) { if (i == 6) break; console.log(i); }
如果執(zhí)行上面的代碼,for 循環(huán)會(huì)在 i 為 6 的時(shí)候終止執(zhí)行,因此 6 也不會(huì)被打印到控制臺。
【推薦學(xué)習(xí):javascript高級教程】
嵌套 For 循環(huán)
值得注意的是,break
和continue
都只對當(dāng)前循環(huán)有效。如果我們有嵌套循環(huán),那么就要很小心了。不妨來看下面的例子:
for (let i = 0; i < 5; i++) { if (i % 2 == 0) continue; for (let j = 0; j < 5; j++) { if (j == 2) break; console.log(`i = ${i}, j = ${j}`); } }
這里我們有兩個(gè)循環(huán),每一個(gè)都會(huì)執(zhí)行 5 次(0~4)。外層的循環(huán)在 i 是偶數(shù)的時(shí)候,跳過當(dāng)前循環(huán)執(zhí)行下一個(gè)。也就是說只有 i 為 1 或則 3 的時(shí)候,才會(huì)執(zhí)行內(nèi)層的循環(huán)。
內(nèi)層的循環(huán)只要 j 的值為 2,就終止了。因此,j 只有 0 和 1。
最終結(jié)果如下:
英文原文地址:https://codeburst.io/javascript-continue-vs-break-47b5c15cacc6
本文采用意譯,版權(quán)歸原作者所有