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
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Initial definition. Unlabeled version. |
ECMAScript 3rd Edition (ECMA-262) | Standard | Labeled 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 | |
浏览器兼容性
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |