对比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的值打印出来。执行结果如下:

12345678910

如果我们只想打印偶数,应该如何做呢?使用continue可以很容易搞定。在每一次循环我们检查是否为奇数,如果是,则跳出此次循环,继续下一次。如果不是,则打印i的值。

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

执行结果如下:

246810

记住,当使用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也不会被打印到控制台。

12345

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 = 0i = 1, j = 1i = 3, j = 0i = 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.cnblogs.com/fundebug/p/8633388.html

时间: 2024-10-22 09:16:27

对比JavaScript中的Continue和Break的相关文章

Java中关键字continue、break和return的区别

Java中关键字continue.break和return的区别: continue:跳出本次循环继续下一次循环 break:   跳出循环体,继续执行循环外的函数体 return:   跳出整个函数体,函数体后面的部分不再执行 有代码才有真相: [java] view plain copy <span style="font-family:SimSun;font-size:14px;"><span style="font-family:SimSun;fon

SQL中的Continue和Break

x 在Sql Server中,sql语句包含While循环的时候,肯定都或多或少的用到Continue和Break... 下面撸了一个小Demo Declare @Index Int = 0,@EndIndex Int = 0 While @Index < 100 Begin Set @EndIndex = @EndIndex + 1 Print 'Continue 之后Index增加...' + Convert(Varchar(1000),@Index) If @EndIndex > 100

循环语句中的continue与break 1.for语句中

举个例子: #include <iostream>#include <Windows.h>#include <string>using namespace std; int main (void){ int i = 0; string ret; for(int i = 0;i < 5; i++){ cout<<"开始第"<<i+1<<"次相亲"<<endl; cout<&

jQuery的each方法中实现continue和break的流控制

// i 对应下标,n对应当前循环的元素 $(p).each(function(i,n){ //相当于continue if(i==0) return true; //相当于break if(i==1) return false; });

javascript 中break、 continue、函数不能重载

在javascript中,break与continue有着显著的差别. 如果遇到break语句,会终止最内层循环,无论后面还有多少计算. 如果遇到continue,只会终止此次循环,后面的自循环依然执行. var num = 0; for (var k = 0; k < 3; k++) { for (var i = 0; i < 3; i++) { for (var j = 0; j < 3; j++) { if (i === 1 && j === 1) { break;

Java中goto,continue,break

goto:在Java中goto仍是保留字,但并未在语言中使用它:Java没有goto. 保留字的定义:       保留字(reserved word),指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用.       保留字包括关键字和未使用的保留字.关键字则指在语言中有特定含义,成为语法中一部分的那些字.在一些语言中,一些保留字可能并没有应用于当前的语法中,这就成了保留字与关键字的区别.一般出现这种情况可能是由于考虑扩展性.例如,Javascript有一些未来保留字,如

2014年辛星Javascript解读第五节 break continue 与异常处理

先说一下break和continue的主要用法吧,break用于跳出循环,continue用于跳过该循环中的一个迭代.简单的说,就是break直接从该语句跳出,但是continue不会跳出该循环语句,但是它会重新来过,即本次不会再次执行. ************具体说明************* 1.我们通过举例的形式来说明,首先看代码一: var sum = 0; for(i = 0;i<10;i++){ if(i==5){ break; } sum += i; } alert(sum);

javascript中call,apply,bind的用法对比分析

这篇文章主要给大家对比分析了javascript中call,apply,bind三个函数的用法,非常的详细,这里推荐给小伙伴们. 关于call,apply,bind这三个函数的用法,是学习javascript这门语言无法越过的知识点.下边我就来好好总结一下它们三者各自的用法,及常见的应用场景. 首先看call这个函数,可以理解成"借用“,"请求".想像一下如下的情景:你孤单一人漂泊在外,有急事想往家里打电话,可是很不巧,手机欠费了,或者没电了,或者掉坑里了,总之你的手机就是用

【转】C#中continue、break和return用法

continue和break的用法一样,直接写上这个单词,后面加一个分号就行 比如: continue; break; 我们先来谈continue 看代码 for (int i=0; i<10; i++) { Console.Write(i); } 这个程序的意思输出从0到9的数字 那如果我在i等于3的时候,我不想输出,那该怎么办呢?那就要用到continue了,在等于3的时候,我们用continue来跳过他,代码如下 for (int i=0; i<10; i++) { if (i == 3