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