java中的标签
Java的控制循环结构中是没有关键字goto的,这种做法有它的好处,它提高了程序流程控制的可读性,但是也有不好的地方,它降低了程序流程控制的灵活性,所以说,“上帝是公平的”。所以,Java为了弥补这方面的不足,Java提供了break和continue的标签用法。Java中的标签就是一个紧跟着“:”的标识符。与其他语言不通,Java语言的标签必须放在循环前面才有作用。下面就来看一些例子:
continue + 标签
public void continueLabelTest(){
outer:
for(int i = 0; i<5; i++){
for(int j = 0; j<6; j++){
if(j == 4){
continue outer;
}
System.out.println(j);
}
System.out.println("test");
}
System.out.println("finish");
}
日志如下:
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
finish
我们发现外层循环的test并不会打印,continue+标签,是重新开始外层循环
break + 标签
public void breakLabelTest() {
outer:
for (int i = 0; i < 3; i++) {
for(int j = 0; j < 5; j++){
if(j==4){
break outer;
}
System.out.println(j);
}
System.out.println("test");
}
System.out.println("finish");
}
打印结果如下:
0
1
2
3
finish
我们可以看到会连同外循环一起break掉,所以"test"没有打印。