s 大家在使用多层循环时,有没有遇到这种情况:
例如:在二维数组当中找是否有2
//在二维数组当中找是否有2
public class Main {
public static void main(String[] args) {
boolean flag = false;
int[][] arr = new int[][]{{1,2},{3,4}};
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
if(arr[i][j]==2){
flag=true; //找到了,修改标记为true
System.out.println("找到了!!");
break;
}
}
if(flag==true){ //进行判断
break;
}
}
}
}
上面的方法固然没有问题,但是在跳出循环的判断语句过于繁琐,内层循环中断不会引起外部循环,所以还会进行一次flag的判断。
label改进:
public class Main {
public static void main(String[] args) {
int[][] arr = new int[][]{{1,2},{3,4}};
label:for(int i=0;i<arr.length;i++){ //给外部循环头加上label标签
for(int j=0;j<arr[i].length;j++){
if(arr[i][j]==2){
System.out.println("找到了!!");
break label; //直接中断标签label即可
}
}
}
}
}