break、continue和标签
1、break 和 continue
在任何迭代语句的主体部分,都可用break和continue 控制循环流程。其中break是强制退出循环,不执行循环中剩余的语句。而continue则是停止执行当前的迭代(循环操作),然后退回循环起始处,开始下一次循环,二者都遵循就近原则。
示例:
1.1、break测试
//测试break
@Test
public void testBreak(){
for (int i = 0; i < 3; i++) {
System.out.println("外层循环");
for (int j = 0; j < 2; j++) {
if (i == 1){
System.out.println("退出内层循环");
break;
}
System.out.println("内层循环");
System.out.println("i=" + i);
System.out.println("j=" + j);
/*执行结果:
外层循环
内层循环
i=0
j=0
内层循环
i=0
j=1
外层循环
退出内层循环
外层循环
内层循环
i=2
j=0
内层循环
i=2
j=1
*/
}
}
}
由上面的结果可以得知,break强制退出的内层循环,即距离它较近的,就近原则。
1.2、continue测试
@Test
public void testContinue(){
for (int i = 0; i < 3; i++) {
System.out.println("外层循环");
for (int j = 0; j < 2; j++) {
if (i == 1){
System.out.println("退出本次内层循环");
continue;
}
System.out.println("内层循环");
System.out.println("i=" + i);
System.out.println("j=" + j);
/*
外层循环
内层循环
i=0
j=0
内层循环
i=0
j=1
外层循环
退出本次内层循环
退出本次内层循环
外层循环
内层循环
i=2
j=0
内层循环
i=2
j=1
*/
}
}
}
由上面的结果可以得知,continue退出本次内层循环,执行下一次内层循环。
2、标签
在Java中标签起作用的唯一地方刚好是在迭代语句之前。"刚好之前"的意思是指标签和迭代之间置入任何语句都不好。使用标签的目的是为了使break和continue可以中断循环,直到标签所在的地方。
例子:
@Test
public void testLabel(){
label1:
for (int i = 0; i < 3; i++) {
System.out.println("外层循环");
for (int j = 0; j < 2; j++) {
if (i == 1){
System.out.println("跳转到外层循环");
continue label1;
}
System.out.println("内层循环");
System.out.println("i=" + i);
System.out.println("j=" + j);
/*
外层循环
内层循环
i=0
j=0
内层循环
i=0
j=1
外层循环
跳转到外层循环
外层循环
内层循环
i=2
j=0
内层循环
i=2
j=1
*/
}
}
}
3、标签注意点
在Java中需要使用标签的唯一理由就是因为由循环嵌套的存在,而且你想要从多层嵌套循环中break或者continue。