摘要:和都是用于控制循環(huán)的。終止整個循環(huán)的執(zhí)行。注意還可以用在中,本文主要介紹在循環(huán)中的使用。嵌套循環(huán)值得注意的是,和都只對當(dāng)前循環(huán)有效。也就是說只有為或則的時候,才會執(zhí)行內(nèi)層的循環(huán)。我同意用函數(shù)式的方法更好,來避免使用循環(huán)。
譯者按: 最好是不用,不過基礎(chǔ)知識要掌握。
原文: JavaScript: Continue vs Break - Learn the difference between the continue and break statements.
譯者: Fundebug
為了保證可讀性,本文采用意譯而非直譯。另外,本文版權(quán)歸原作者所有,翻譯僅用于學(xué)習(xí)。
在這篇文章中,我們會詳細(xì)介紹continue和break,分析它們的相同和不同之處,甚至用一些可運(yùn)行的實例。
continue和break都是用于控制循環(huán)的。我們先來看一下他們的定義:
Continue: 結(jié)束當(dāng)前的執(zhí)行,并繼續(xù)下一個循環(huán)。
Break: 終止整個循環(huán)的執(zhí)行。
注意:break還可以用在switch中,本文主要介紹在循環(huán)中的使用。
Continue考慮如下代碼:
for (let i = 1; i <= 10; i++){ console.log(i); }
我們有一個簡單的for循環(huán),該循環(huán)會執(zhí)行10次,i的值從1一直遞增到10。每一次循環(huán)將當(dāng)前i的值打印出來。執(zhí)行結(jié)果如下:
1 2 3 4 5 6 7 8 9 10
如果我們只想打印偶數(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é)果如下:
2 4 6 8 10
記住,當(dāng)使用continue關(guān)鍵字的時候,該次循環(huán)立即結(jié)束執(zhí)行,continue往后的代碼不再被執(zhí)行。
Break我們使用相同的循環(huán)來做例子:
for (let i = 1; i <= 10; i++){ console.log(i); }
如果我們想在i的值為6的時候,終止整個循環(huán)。那么我們可以使用break:
for (let i = 1; i <= 10; i++){ if (i == 6) break; console.log(i); }
如果執(zhí)行上面的代碼,for循環(huán)會在i為6的時候終止執(zhí)行,因此6也不會被打印到控制臺。
1 2 3 4 5
JavaScript太靈(gui)活(yi)了,出了BUG你也不知道,不妨接入Fundebug線上實時監(jiān)控。
嵌套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}`); } }
這里我們有兩個循環(huán),每一個都會執(zhí)行5次(0~4)。外層的循環(huán)在i是偶數(shù)的時候,跳過當(dāng)前循環(huán)執(zhí)行下一個。也就是說只有i為1或則3的時候,才會執(zhí)行內(nèi)層的循環(huán)。
內(nèi)層的循環(huán)只要j的值為2,就終止了。因此,j只有0和1。
最終結(jié)果如下:
i = 1, j = 0 i = 1, j = 1 i = 3, j = 0 i = 3, j = 1評論精選
[Nicu Micleu?anu]:最好的策略是break和continue都不要用。如果你用了,證明你哪里搞錯了,嘗試換個方法。
[Brandon Morelli]: 我同意用函數(shù)式的方法更好,來避免使用for循環(huán)。不過呢,理解continue和break的異同點還是很重要的,萬一哪天遇到了呢。
版權(quán)聲明:
轉(zhuǎn)載時請注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2018/03/05/javascript-continue-vs-break/
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/93642.html
摘要:語句概況描述在代碼中,使用分號分隔的可以叫做是語句語句塊在代碼中,大括號表示語句塊語句塊中可以存在一條或多條語句語句的分類條件語句循環(huán)語句跳轉(zhuǎn)語句條件語句描述通過對條件表達(dá)式的計算結(jié)果進(jìn)行判斷,來決定要執(zhí)行的語句語句語法條件表達(dá)式語句塊當(dāng) 語句概況 描述 在JavaScript代碼中,使用分號(;)分隔的可以叫做是語句 語句塊 在JavaScript代碼中,大括號({})表示語句塊 ...
摘要:因為阻止了默認(rèn)行為的幾個常見用法取消默認(rèn)行為參照上例鏈?zhǔn)骄幊涕]包之后章節(jié)詳細(xì)講解和語句和語句用于在循環(huán)中精確地控制代碼的執(zhí)行。其中,語句會立即退出循環(huán),強(qiáng)制繼續(xù)執(zhí)行循環(huán)后面的語句。只能結(jié)束循環(huán)中的一次過程但不能終止循環(huán)繼續(xù)進(jìn)行。 return 語句 return語句的幾個特點:(1)return語句應(yīng)用范圍只能出現(xiàn)在函數(shù)體內(nèi),出現(xiàn)在代碼中的其他任何地方都會造成語法錯誤(2)return...
摘要:如果每個循環(huán)正常執(zhí)行次,則語句就會正常執(zhí)行次。但內(nèi)部循環(huán)中的語句帶了一個參數(shù)要返回到的標(biāo)簽。 最近在閱讀《JavaScript高級程序設(shè)計第3版》的過程中,看到了label語句的使用,因為之前沒使用過,覺得有必要學(xué)習(xí)一下,特此記錄。 label語句是ECMA中定義的語句,因此不存在兼容性的問題,使用label語句是為了給代碼添加標(biāo)簽,方便將來使用,語法如下: label: statem...
摘要:二知識點最近在完成一個小作業(yè),題目要求通過代碼實現(xiàn),讓用戶輸入用戶名密碼,認(rèn)證成功后顯示歡迎信息,輸錯三次后退出程序。 一、背景 人工智能這幾年一直都比較火,筆者一直想去學(xué)習(xí)一番;因為一直是從事PHP開發(fā)工作,對于Python接觸并不算多,總是在關(guān)鍵時候面臨著基礎(chǔ)不牢,地動山搖的尷尬,比如在遇到稍微深入些的問題時候就容易卡殼,于是準(zhǔn)備從Python入門從頭學(xué)起; 筆者覺得應(yīng)該有不少人同...
摘要:最近在清理的未讀列表,看到了才知道了的,一種自動插入分號的機(jī)制。這種行為被叫做自動插入分號,簡稱。不過在省略分號的風(fēng)格中,這種解析特性會導(dǎo)致一些意外情況。規(guī)則標(biāo)準(zhǔn)定義的包括三條規(guī)則和兩條例外。規(guī)則一情況三就是為量身定做的。 TL;DR 最近在清理 Pocket 的未讀列表,看到了 An Open Letter to JavaScript Leaders Regarding Semico...
閱讀 773·2019-08-29 16:32
閱讀 841·2019-08-29 12:31
閱讀 3223·2019-08-26 18:26
閱讀 3161·2019-08-26 12:20
閱讀 1738·2019-08-26 12:00
閱讀 3011·2019-08-26 10:58
閱讀 2819·2019-08-23 17:08
閱讀 2315·2019-08-23 16:32