JAVA流程语句之break、continue和标签的使用,以及与return之间的区别(第10节)


1 break,跳出并停止循环

1 break不带标签,默认是跳出当前最近的循环
int a;
int b;
int c;
for(a = 1; a<=3;a++){
    for(b = 1; b<=3;b++){
        if(b == 2){
            break;// 跳出第二层循环
        }
        for(c = 1; c<=3;c++){
            System.out.print("a:"+a);
            System.out.print(",");
            System.out.print("b:"+b);
            System.out.print(",");
            System.out.print("c:"+c);
            System.out.println();
        }
    }
}

输出结果:

a:1,b:1,c:1
a:1,b:1,c:2
a:1,b:1,c:3
a:2,b:1,c:1
a:2,b:1,c:2
a:2,b:1,c:3
a:3,b:1,c:1
a:3,b:1,c:2
a:3,b:1,c:3



2 break配合标签,可以在多层循环嵌套时,实现跳出指定层级的循环
int a;
int b;
int c;
outer1:for(a = 1; a<=3;a++){
    outer2:for(b = 1; b<=3;b++){
        outer3:for(c = 1; c<=3;c++){
            if(c == 2){
                break outer2;
            }
            System.out.print("a:"+a);
            System.out.print(",");
            System.out.print("b:"+b);
            System.out.print(",");
            System.out.print("c:"+c);
            System.out.println();
        }
    }
}

执行结果:

a:1,b:1,c:1
a:2,b:1,c:1
a:3,b:1,c:1

 

 2 continue,跳出当次循环,继续下次循环

1 默认不带标签,只跳出最近的一个循环,继续下次循环

int a;
for(a = 1; a<=3;a++){
    if(a == 3){
        continue;
    }
    System.out.println("a:"+a);
}

输出结果:

a:1
a:2

2 带标签,可以跳出指定层级的循环,继续指定层级的下次循环

int a;
int b;
int c;
outer1:for(a = 1; a<=3;a++){
    outer2:for(b = 1; b<=3;b++){
        outer3:for(c = 1; c<=3;c++){
            if(c == 2){
                continue outer2;
            }
            System.out.print("a:"+a);
            System.out.print(",");
            System.out.print("b:"+b);
            System.out.print(",");
            System.out.print("c:"+c);
            System.out.println();
        }
    }
}

输出结果:

a:1,b:1,c:1
a:1,b:2,c:1
a:1,b:3,c:1
a:2,b:1,c:1
a:2,b:2,c:1
a:2,b:3,c:1
a:3,b:1,c:1
a:3,b:2,c:1
a:3,b:3,c:1

相关