对照JavaScript中的Continue和Break

译者按: 最好是不必,不过基础知识要掌握。

为了保证可读性,本文采纳意译而非直译。别的,本文版权归原作者一切,翻译仅用于进修。

在这篇文章中,我们会细致引见continuebreak,剖析它们的雷同和不同之处,以至用一些可运转的实例。

continuebreak都是用于掌握轮回的。我们先来看一下他们的定义:

  • Continue: 完毕当前的实行,并继承下一个轮回。
  • Break: 停止全部轮回的实行。

注重:break还能够用在switch中,本文主要引见在轮回中的运用。

Continue

斟酌以下代码:

for (let i = 1; i <= 10; i++){
  console.log(i);
}

我们有一个简朴的for轮回,该轮回会实行10次,i的值从1一向递增到10。每一次轮回将当前i的值打印出来。实行效果以下:

1
2
3
4
5
6
7
8
9
10

假如我们只想打印偶数,应当如何做呢?运用continue能够很轻易搞定。在每一次轮回我们搜检是不是为奇数,假如是,则跳出此次轮回,继承下一次。假如不是,则打印i的值。

for (let i = 1; i <= 10; i++){
  if (i % 2 == 1) continue;
  console.log(i);
}

实行效果以下:

2
4
6
8
10

记着,当运用continue关键字的时刻,该次轮回马上完毕实行,continue今后的代码不再被实行。

Break

我们运用雷同的轮回来做例子:

for (let i = 1; i <= 10; i++){
  console.log(i);
}

假如我们想在i的值为6的时刻,停止全部轮回。那末我们能够运用break

for (let i = 1; i <= 10; i++){
  if (i == 6) break;
  console.log(i);
}

假如实行上面的代码,for轮回会在i为6的时刻停止实行,因而6也不会被打印到掌握台。

1
2
3
4
5

JavaScript太灵(gui)活(yi)了,出了BUG你也不知道,无妨接入Fundebug线上及时监控

嵌套For轮回

值得注重的是,breakcontinue都只对当前轮回有用。假如我们有嵌套轮回,那末就要很警惕了。无妨来看下面的例子:

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}`);
   }
}

这里我们有两个轮回,每个都邑实行5次(0~4)。外层的轮回在i是偶数的时刻,跳过当前轮回实行下一个。也就是说只需i为1或则3的时刻,才会实行内层的轮回。

内层的轮回只需j的值为2,就停止了。因而,j只需0和1。

终究效果以下:

i = 1, j = 0
i = 1, j = 1
i = 3, j = 0
i = 3, j = 1

批评精选

  • [Nicu Micleușanu]:最好的战略是break和continue都不要用。假如你用了,证实你那里搞错了,尝试换个要领。
  • [Brandon Morelli]: 我赞同用函数式的要领更好,来防止运用for轮回。不过呢,明白continuebreak的异同点照样很主要的,万一哪天遇到了呢。

《对照JavaScript中的Continue和Break》

版权声明:
转载时请说明作者Fundebug以及本文地点:
https://blog.fundebug.com/2018/03/05/javascript-continue-vs-break/

    原文作者:Fundebug
    原文地址: https://segmentfault.com/a/1190000013950045
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞