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