我们平时写程序的时候有时需要直接从多重循环中跳出来,而break只能跳出一个循环,所以我们可能会写出这样的程序。
public class Test {
public static void main(String[] args) {
int count=0;
boolean mark=false;
for(int i=0;i<10;i++)
{
if(mark==true)
break;
for(int j=0;j<10;j++)
{
if(mark==true)
break;
for(int k=0;k<10;k++)
{
count++;
if(5==count)
{
mark=true;
break;
}
}
}
}
System.out.println(count);
}
}
虽然这样也可以达到目的但是代码看上去比较凌乱,不方便阅读。如果循环嵌套的较多的话那就更加让人头大了,有没有能直接跳出多重循环的语句呢?当然是有的,我们可以使用简单的break+label的语法,下面是示例。
public class Test {
public static void main(String[] args) {
int count=0;
mark:
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
for(int k=0;k<10;k++)
{
count++;
if(5==count)
break mark;
}
}
}
System.out.println(count);
}
}
这样不管是嵌套了多少层循环我们都可以用简单的一行语句直接跳出来。
在c语言中我们可以使用goto 语句来实现跳出多重循环。
#include<stdio.h>
int main()
{
int i,j,k;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
if(k==5)
goto mark;
}
}
}
mark:
printf("%d %d %d\n",i,j,k);
return 0;
}