continue语句
continue语句和break语句非常类似,但它不是退出循环,而是转而执行下一次循环。continue语句的语法和break语句语法一样简单:
continue;
continue语句同样可以带有标签:
continue labelname;
不管带不带标签,continue只能在循环体内使用,在其他地方使用将会报错。
当执行到continue语句的时候,当前的循环逻辑就停止了,随即执行下一次循环,在不同类型的循环中,continue的行为也有一定的区别:
- 在while循环中,在循环开始处指定的expression会重复检测,如果检测结果为true,循环体会从头开始。
- 在do/while循环中,程序的执行会直接跳到循环结尾处,这时会重新判断循环条件,之后才会开始下一次循环。
- 在for循环中,首先会计算自增表达式,然后再次检测test表达式,用以判断是否执行循环体。
- 在for/in循环中,循环开始遍历下一个属性名,这个属性名赋给了指定的变量。
var array1 = [1 , 2 ,3 ,null ,5];
var sum = 0 ;
for( var i = 0 ;i < array1.length; i++){
if(!array1[i]) continue;
sum += array1[i];
console.log(sum);
}
// 1 3 6 11 此处注意,如果没有初始化sum,那么默认初始值是 undefined
var sum1 ;
console.log(sum1 + 0); //NaN
带标签的continue语句可以用在嵌套的循环中,用以跳出多层次嵌套的循环体逻辑,在continue和labelname之间不能有换行。