label语句

mac2022-06-30  116

在javascript中,我们可能很少会去用到 Label 语句,但是熟练的应用 Label 语句,尤其是在嵌套循环中熟练应用 break, continue 与 Label 可以精确的返回到你想要的程序的位置。

label语句语法

label:statement 示例: start:for(var i = 0; i < 5; i++){ console.log(i) }

 

举个栗子:(没添加label)

var num = 0; for(var i = 0; i < 10; i++){ for(var j = 0; j < 10; j++){ if(i == 5 && j ==5){ break; } num++; } } console.log(num); //95

这里当 i 和 j 等于5的时候只退出了 j 循环 ,输出结果是95

 

添加了label

var num = 0; outermost: for(var i = 0; i < 10; i++){ for(var j = 0; j < 10; j++){ console.log('i',i,'j',j,'num',num) if(i == 5 && j ==5){ console.log('等于5了') break outermost; } num++; } } console.log(num); //55

 

这里break语句带了一个参数:要返回到的标签(返回到哪里),添加这个标签的结果将导致break语句不仅会退出 j 循环,还会退出 i 循环

 

再看下面的例子,注意outPoint:

var num = 0; for (var i = 0; i < 10; i++) { outPoint: for (var j = 0; j < 10; j++) { for (var k = 0; k < 10; k++) { console.log('i', i, 'j', j, 'num', 'k', k, num) if (i == 5 && j == 5 && k == 5) { console.log('等于5了') break outPoint; } num++ } } } console.log(num); // 955 ,如果没有label语句 输出的是995

 有label:

 

 无label:

 

可以看出有label语句的退出了 k 和 j 循环,无label语句的只退出k循环

 

continue语句中使用label:

var num = 0; outPoint: for (var i = 0; i < 10; i++) { for (var j = 0; j < 10; j++) { console.log('i', i, 'j', j, 'num', num) if (i == 5 && j == 5) { console.log('等于5') continue outPoint; } num++ } } console.log(num) // 95,没使用label输出的是99

有label执行结果:

 

 无label执行结果:

continue语句会强制继续执行循环---退出内部循环,执行外部循环,当 j 是5是,continue语句执行,意味着内部循环少执行了5次。

 

转载于:https://www.cnblogs.com/YAN-HUA/p/11343359.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)