本文解析JavaScript中break和continue在单层及多重循环中的具体行为。通过标签语法,break可跳出指定外层循环,而continue则跳过当前迭代继续执行。文章通过代码示例展示了不同条件下的循环退出与跳过逻辑,帮助开发者准确控制程序流程。
break与continue的基本区别
首先阐述break与continue语句在JavaScript中的基本区别。
相关内容参考自《JavaScript高级程序设计》。
for(var i=0;i<10;i++){
if(i>5){
break;
}
}
console.log(i); ---6
当变量i等于5或10时,程序执行到break语句,从而退出当前循环。
for(var i=1;i<10;i++){
if(i>5){
continue;
}
num++;
}
console.log(num); ---4
var num=0;
for(var i=1;i<10;i++){
if(i%5==0){
continue;
}
num++;
}
console.log(num); ---8
当变量i等于5或10时,程序根据i的值继续执行for循环,随后退出该次迭代。
接下来讨论在多重嵌套循环场景下的应用。
针对break语句的行为分析。
多重循环中break的使用
outer:
for(var i=0;i<10;i++){
inter:
for(var j=0;j<10;j++){
if(i>5){
console.log(i); ----6
break outer;
}
}
}
此处演示将break作用于最外层循环的情况。
outer:
for(var i=0;i<10;i++){
inter:
for(var j=0;j<10;j++){
if(i>5){
console.log(i); ----6,7,8,9
break inter;
}
}
}
当 break 执行到内层循环时,虽然暂时不会跳出,但执行够 4 次以后,还是跳出了
针对continue语句的行为分析。
多重循环中continue的使用
var num=0;
outer:
for(var i=0;i<10;i++){
inter:
for(var j=0;j<10;j++){
if(i>5){
console.log(i); ----6,7,8,9
continue outer;
}
num++;
}
}
console.log(num); --- 60
当变量i大于或等于5时,触发continue语句以继续下一次循环,因此总执行次数会减少40次。
var num=0;
outer:
for(var i=0;i<10;i++){
inter:
for(var j=0;j<10;j++){
if(i>5){
console.log(i); ----6,7,8,9
continue inter;
}
num++;
}
}
console.log(num); --- 60
原理相同,循环仍会继续执行,只是总次数减少了40次。这是因为限制条件始终基于i的值,当i小于或等于5时条件不成立。
以上内容为本文的全部要点,希望对读者的学习有所帮助,也欢迎大家继续支持本站。