日期:2014-05-16  浏览次数:20289 次

JavaScript break跳出多重循环

先来看一个小例子:

<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