javascript: break跳出多重循环以及退出each循环
先来看一个小例子:
<html> <body> <script type="text/javascript"> for(j=0;j<2;j++) { for(i=0;i<=10;i++){ if(i==3){ break; } document.write("这个数字是"+j+""+ i) document.write("<br/>") } } </script> </body> </html>
运行结果:
这个数字是0 0 这个数字是0 1 这个数字是0 2 这个数字是1 0 这个数字是1 1 这个数字是1 2
上面例子说明,break语句退出的是最内层的循环。如果我想跳出整个循环该怎么办呢?答案是:break 标签
实例一:
<html> <body> <script type="text/javascript"> Tag_1: for(j=0;j<2;j++) { for(i=0;i<=10;i++){ if(i==3){ break Tag_1; } document.write("这个数字是"+j+""+ i); document.write("<br/>"); } } document.write("End"); </script> </body> </html>
运行结果:
这个数字是0 0 这个数字是0 1 这个数字是0 2 End
实例二:来自《JavaScript权威指南》
<script type="text/javascript"> outerloop://命名外圈语句 for(i=0; i<10; i++) { innerloop://命名内圈语句 for(j=0; j<10; j++) { // 跳出内圈循环 if(j>3){break;} // 跳出内圈循环 if(i==2){break innerloop;} // 跳出外圈循环 if(i==4){break outerloop;} document.write("i ="+i+", j ="+j+"<br />"); } } document.write("final"+"i ="+i+", j ="+j); </script>
运行结果:
i = 0 , j = 0 i = 0 , j = 1 i = 0 , j = 2 i = 0 , j = 3 i = 1 , j = 0 i = 1 , j = 1 i = 1 , j = 2 i = 1 , j = 3 i = 3 , j = 0 i = 3 , j = 1 i = 3 , j = 2 i = 3 , j = 3 final i = 4 , j = 0