资讯专栏INFORMATION COLUMN

对比JavaScript中的Continue和Break

MartinHan / 1570人阅读

摘要:和都是用于控制循环的。终止整个循环的执行。注意还可以用在中,本文主要介绍在循环中的使用。嵌套循环值得注意的是,和都只对当前循环有效。也就是说只有为或则的时候,才会执行内层的循环。我同意用函数式的方法更好,来避免使用循环。

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

原文: JavaScript: Continue vs Break - Learn the difference between the continue and break statements.

译者: Fundebug

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

在这篇文章中,我们会详细介绍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的异同点还是很重要的,万一哪天遇到了呢。

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93642.html

相关文章

  • JavaScript 之 核心语法 [ 语句 ]

    摘要:语句概况描述在代码中,使用分号分隔的可以叫做是语句语句块在代码中,大括号表示语句块语句块中可以存在一条或多条语句语句的分类条件语句循环语句跳转语句条件语句描述通过对条件表达式的计算结果进行判断,来决定要执行的语句语句语法条件表达式语句块当 语句概况 描述 在JavaScript代码中,使用分号(;)分隔的可以叫做是语句 语句块 在JavaScript代码中,大括号({})表示语句块 ...

    stormjun 评论0 收藏0
  • javascript高级程序设计》笔记:continue / break return

    摘要:因为阻止了默认行为的几个常见用法取消默认行为参照上例链式编程闭包之后章节详细讲解和语句和语句用于在循环中精确地控制代码的执行。其中,语句会立即退出循环,强制继续执行循环后面的语句。只能结束循环中的一次过程但不能终止循环继续进行。 return 语句 return语句的几个特点:(1)return语句应用范围只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误(2)return...

    SexySix 评论0 收藏0
  • Javascript中的label语句

    摘要:如果每个循环正常执行次,则语句就会正常执行次。但内部循环中的语句带了一个参数要返回到的标签。 最近在阅读《JavaScript高级程序设计第3版》的过程中,看到了label语句的使用,因为之前没使用过,觉得有必要学习一下,特此记录。 label语句是ECMA中定义的语句,因此不存在兼容性的问题,使用label语句是为了给代码添加标签,方便将来使用,语法如下: label: statem...

    ShevaKuilin 评论0 收藏0
  • 通过PHP与Python代码对比浅析语法差异

    摘要:二知识点最近在完成一个小作业,题目要求通过代码实现,让用户输入用户名密码,认证成功后显示欢迎信息,输错三次后退出程序。 一、背景 人工智能这几年一直都比较火,笔者一直想去学习一番;因为一直是从事PHP开发工作,对于Python接触并不算多,总是在关键时候面临着基础不牢,地动山摇的尴尬,比如在遇到稍微深入些的问题时候就容易卡壳,于是准备从Python入门从头学起; 笔者觉得应该有不少人同...

    edagarli 评论0 收藏0
  • JavaScript ASI 机制详解

    摘要:最近在清理的未读列表,看到了才知道了的,一种自动插入分号的机制。这种行为被叫做自动插入分号,简称。不过在省略分号的风格中,这种解析特性会导致一些意外情况。规则标准定义的包括三条规则和两条例外。规则一情况三就是为量身定做的。 TL;DR 最近在清理 Pocket 的未读列表,看到了 An Open Letter to JavaScript Leaders Regarding Semico...

    frontoldman 评论0 收藏0

发表评论

0条评论

MartinHan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<