循环语句
1. break
语句和continue
语句都具有跳转作用,可以让代码不按既有的顺序执行。
一. break
语句用于跳出代码块或循环。
for (var i = 0; i < 5; i++) {
console.log(i);
if (i === 3)
break;
}
// 0
// 1
// 2
// 3
上面代码执行到i
等于3,就会跳出循环。
二. continue
语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。
var i = 0;
while (i < 10){
i++;
if (i % 2 === 0) continue;
console.log('i 为:' + i);
}
只有在i
为奇数时,才会输出i
的值。如果i
为偶数,则直接进入下一轮循环。如果存在多重循环,不带参数的break
语句和continue
语句都只针对最内层循环。
2. 标签(label)
js允许语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。
label:
语句
它通常与break
语句和continue
语句配合使用,用来跳出特定的循环。
test:
for (var i = 0; i < 2; i++){
for (var j = 0; j < 2; j++){
if (i === 1 && j === 1) break test;
console.log('i=' + i + ', j=' + j);
}
}
// i=0, j=0
// i=0, j=1
// i=1, j=0
代码为一个双重循环区块,break
命令后面加上了top
标签,满足条件时直接跳出双层循环。如果break
语句后面不使用标签,则只能跳出内层循环,进入下一次的外层循环。
标签也可以用于跳出代码块。
test: {
console.log(1);
break test;
console.log('不输出');
}
console.log(2);
// 1
// 2
代码执行到break foo
,就会跳出区块。
continue
语句与标签配合使用:
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
if (i === 1 && j === 1) continue top;
console.log('i=' + i + ', j=' + j);
}
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
// i=2, j=0
// i=2, j=1
// i=2, j=2
代码中continue
命令后面有一个标签名,满足条件时,会跳过当前循环,直接进入下一轮外层循环。如果continue
语句后面不使用标签,则只能进入下一轮的内层循环。