JavaScript循环中label的使用
label标记语句(labeled statement)(所谓标记就是在一条语句前面加个可以引用的标识符),可与break或continue语句联合使用
语法
label://标识符(可以是任何非保留关键字)
statement //语句
温馨提示:下文中的label1指的是父循环,即:变量为i的循环;label2指的是子循环,即:变量为j的循环。
另:关于break与continue的区别本文不予以赘述,如有需要请参考:https://zhidao.baidu.com/question/136303942.html
break:跳出并结束当前循环
continue:跳过循环中的一个迭代
与break混合使用——情形一:
label1: for(var i=0;i<3;i++){ label2: for(var j=0;j<3;j++){ if(i==1&&j==1){ break label1; //满足条件时(结束)整个label1,即:整个循环终止。 } console.log("i = "+i+" , j = "+j); } } // Output: // i = 0 , j = 0 // i = 0 , j = 1 // i = 0 , j = 2 // i = 1 , j = 0
与break混合使用——情形二:
label1: for(var i=0;i<3;i++){ label2: for(var j=0;j<3;j++){ if(i==1&&j==1){ break label2; //满足条件时(结束)当前label2,即i=1时的label2。注意:只是结束当前label2,label1还会继续循环,当i=2时,label2还会继续执行。 } console.log("i = "+i+" , j = "+j); } } // Output: // 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混合使用——情形一:
label1: for(var i=0;i<3;i++){ label2: for(var j=0;j<3;j++){ if(i==1&&j==1){ continue label1; //满足条件时(跳过)当前label1,即:i=1时的label1。注意:只是跳过当前label1,并不是结束整个label1,也就是说label1还会继续循环。 } console.log("i = "+i+" , j = "+j); } } // Output: // 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混合使用——情形二:
label1: for(var i=0;i<3;i++){ label2: for(var j=0;j<3;j++){ if(i==1&&j==1){ continue label2; //满足条件时(跳过)当前条件下的输出值,即:跳过i==1,j==1的情况。注意:只是跳过当前条件下的输出值,label1,label2还会照常循环。 } console.log("i = "+i+" , j = "+j); } } // Output: // i = 0 , j = 0 // i = 0 , j = 1 // i = 0 , j = 2 // i = 1 , j = 0 // i = 1 , j = 2 // i = 2 , j = 0 // i = 2 , j = 1 // i = 2 , j = 2

浙公网安备 33010602011771号