成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

對(duì)比JavaScript中的Continue和Break

MartinHan / 1734人閱讀

摘要:和都是用于控制循環(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ì)介紹continuebreak,分析它們的相同和不同之處,甚至用一些可運(yùn)行的實(shí)例。

continuebreak都是用于控制循環(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)

值得注意的是,breakcontinue都只對(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ò)呢,理解continuebreak的異同點(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

相關(guān)文章

  • JavaScript 之 核心語(yǔ)法 [ 語(yǔ)句 ]

    摘要:語(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ǔ)句塊 ...

    stormjun 評(píng)論0 收藏0
  • javascript高級(jí)程序設(shè)計(jì)》筆記:continue / break return

    摘要:因?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...

    SexySix 評(píng)論0 收藏0
  • Javascript中的label語(yǔ)句

    摘要:如果每個(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...

    ShevaKuilin 評(píng)論0 收藏0
  • 通過(guò)PHP與Python代碼對(duì)比淺析語(yǔ)法差異

    摘要:二知識(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)該有不少人同...

    edagarli 評(píng)論0 收藏0
  • JavaScript ASI 機(jī)制詳解

    摘要:最近在清理的未讀列表,看到了才知道了的,一種自動(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...

    frontoldman 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<