java 中使用”{“和”}”组成一个代码块,例如我们平时使用到的静态代码块,使用static修饰。
每个代码块可以使用一个Label修饰,Label不是一个关键字,是一个任意标示符,可以理解为一个代码块的标示名字,就像c++中使用goto语句时可以跳转到指定的代码块,而Java中的Label是为循环设计,方便在多重循环中使用break和continue。
在多重循环中,我们经常有需求跳出最外层循环,例如查找二位数组中某个数等等,但是break和continue都只能作用于当前循环,例如:
public static void main(String[] args) {
int[][] test = {{1,2,3},{4,5,6}};
//遍历数组遍历到2时跳出循环
for(int i=0;i<test.length;i++) {
//遍历第一行
for(int j=0;j<test[0].length;j++) {
System.out.println("current num: "+test[i][j]);
if(test[i][j] ==2)
break; //我们希望这里可以跳出所有循环
}
}
}
输出为:
current num: 1
current num: 2
current num: 4
current num: 5
current num: 6
当遍历第一层时遍历到2,break只是退出了当前循环,外层的循环还在继续;
Label的使用可以让我们方便的跳出指定的循环块。代码如下:
public static void main(String[] args) {
int[][] test = {{1,2,3},{4,5,6}};
//遍历数组遍历到2时跳出循环
Labelout:
for(int i=0;i<test.length;i++) {
//遍历第一行
Labelin:
for(int j=0;j<test[0].length;j++) {
System.out.println("current num: "+test[i][j]);
if(test[i][j] ==2)
break Labelout; //我们希望这里可以跳出所有循环
}
}
}
输出:
current num: 1
current num: 2
continue使用方法一样,可以在continue后面加上循环的label,跳过指定的循环。