这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战
break 和 continue 这两个语句的出现可以帮助我们大量的优化代码,减少了计算机的计算次数。但是很容易混淆它们的用法.
break
我已经找到我要的答案了,我不需要进行更多的循环了!
- break 语句的作用可以立即停止当前的 for、do while、while 循环。
- 根据一些条件设置 break 位置,直到循环能够执行到 break 语句立即停止执行,跳出循环。
注意
- break 如果没有特殊指示,只能停止自己所在的那一层循环,并不能终止外部循环。(例1)
- 如果想停止外层循环,可以给外层循环添加一个标签名 label,在内层循环的 break 关键字后面空格加一个 label 名。(例2)
例1
for (var i = 1; i<=4; i++){
for (var j = 1; j<=4; j++){
console.log(i,j);
if (j >= 2){
break;
}
}
}
输出:
这里我们可以看到, break只是终止了内层的循环, 外层的循环还在继续, 只有内层循环中满足if条件j>=2的部分不会再执行了
例2
lable: for (var i = 1; i<=4; i++){
for (var j = 1; j<=4; j++){
console.log(i,j);
if (j >= 2){
break lable;
}
}
}
输出:
当为break设置标签终止外部循环时, 可以看到所有i>=2的部分都不会执行了.
continue
这个答案不是我想要的,赶紧试试下一个吧!
遇到 continue 表示当前的一次循环数据不是我们想要的,会立即停止当前次的循环,立即进入下一次循环。
注意
- 要根据特殊条件设置 continue 的位置。
- continue 如果没有特殊指示只能进入自己的下一次循环,不能立即停止外层循环的这一次进入下一次。
- 控制外层循环的方式与 break 一样,都是添加外层的标签名。(例1)
例1
for (var i = 1; i<=4; i++){
for (var j = 1; j<=4; j++){
if (j >= 3){
continue;
}
console.log(i,j)
}
}
输出:
例2
lable: for (var i = 1; i<=4; i++){
for (var j = 1; j<=4; j++){
if (j >= 3){
continue lable;
}
console.log(i,j)
}
}
输出:
在这两个例题中, 使用continue结束内层还是外层循环得到的结果并没有区别.
小结
break语句可以跳出当前循环;
break语句通常配合if,在满足条件时提前结束整个循环;
break语句总是跳出最近的一层循环;
continue语句可以提前结束本次循环;
continue语句通常配合if,在满足条件时提前结束本次循环。