今天在看一个开源项目的时候,无意中看到一个未见过的语法和用法,于是查了一下资料和写了一下demo来验证,结果如下
懂得c++的朋友都知道goto这个关键字吧,这个关键字让我们可以在程序中比较灵活地跳转;当然都不推荐使用他,但是他也有他特定的用途,比如跳出多重循环的时候就特别有用,直接上代码:
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
init();
}
private static void init() {
label:
for (int i = 0; i < 50; i++) {
for (int j = 0; j < 30; j++) {
for (int a = 0; a < 30; a++) {
if (a == 15)
break label;
System.out.println("third======" + a);
}
System.out.println("second======" + j);
}
System.out.println("first======" + i);
}
System.out.println("end======");
}
}
输出结果是:
third======0
third======1
third======2
third======3
third======4
third======5
third======6
third======7
third======8
third======9
third======10
third======11
third======12
third======13
third======14
end======
可以看到,再循环开始前定了label后,在内部循环中使用break label就可以跳出所有的循环,然后执行最外出循环之后的代码,还有一个用法就是continue label。
而continue label是跳出所有循环回到最外层循环的开始处重新开始循环代码的执行