continue

continue

continue 语句结束当前(或标签)的循环语句的本次迭代,并继续执行循环的下一次迭代。

语法

continue [label];

label标识标号关联的语句

描述

break语句的区别在于, continue 并不会终止循环的迭代,而是:

  • while 循环中,控制流跳转回条件判断;

  • for 循环中,控制流跳转到更新语句。

continue语句可以包含一个可选的标号以控制程序跳转到指定循环的下一次迭代,而非当前循环。此时要求continue语句在对应的循环内部。

示例

在 while 语句中使用 continue

下述例子展示了while循环中continue语句的使用。当循环到i的值为 3 时,执行 continue 。 n 的值在几次迭代后分别为 1, 3, 7 和 12 .

var i = 0; var n = 0; while (i < 5) { i++; if (i === 3) { continue; } n += i; }

使用带标号的 continue

在下面的例子中,被标记为checkiandj的语句包含一个被标记为checkj的语句。当遇到continue语句时,程序回到checkj语句的开始继续执行。每次遇到continue时,再次执行checkj,直到条件判断返回 false 。之后完成checkiandj语句剩下的部分。

但如果continue的标号被改为checkiandj,那程序将会从checkiandj语句的开始继续运行。

另见label

var i = 0; var j = 8; checkiandj: while (i < 4) { console.log('i: ' + i i += 1; checkj: while (j > 4) { console.log('j: ' + j j -= 1; if ((j % 2) == 0) continue checkj; console.log(j + ' is odd.' } console.log('i = ' + i console.log('j = ' + j }

输出:

i: 0 // start checkj j: 8 7 is odd. j: 7 j: 6 5 is odd. j: 5 // end checkj i = 1 j = 4 i: 1 i = 2 j = 4 i: 2 i = 3 j = 4 i: 3 i = 4 j = 4

规范

SpecificationStatusComment
ECMAScript 1st Edition (ECMA-262)StandardInitial definition. Unlabeled version.
ECMAScript 3rd Edition (ECMA-262)StandardLabeled version added.
ECMAScript 5.1 (ECMA-262)The definition of 'Continue statement' in that specification.Standard
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Continue statement' in that specification.Standard
ECMAScript Latest Draft (ECMA-262)The definition of 'Continue statement' in that specification.Draft

浏览器兼容性

FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)

FeatureAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)