天天看点

立此存照(5)label标签与break和continue

public class Test{
	public static void main(String[] args){
		int[][] arr = {{1,2,3,4},{5,6,7, 8},{9, 10, 11, 12}};
		new Test().dblloop1(arr);
		new Test().dblloop2(arr);
		new Test().dblloop3(arr);
		
	}
	public void dblloop1(int[][] arr){
		label1:	
		for(int i=0;i < arr.length;i++){
			for(int j=0;j < arr[i].length;j++){
				System.out.print(arr[i][j]+" ");
				if(arr[i][j] == 5)
					break label1;
			}
		}
		System.out.println("END");//
	}
	public void dblloop2(int[][] arr){
		int i=0;
		label1:	
		for(i=0;i < arr.length;i++){
			System.out.println("i="+i);//
			for(int j=0;j < arr[i].length;j++){
				System.out.print(arr[i][j]+" ");
				if(arr[i][j] == 5)
					continue label1;
			}
		}
		System.out.println("END");//	
	}
	public void dblloop3(int[][] arr){
		label1:	
		for(int i=0;i < arr.length;i++){
			for(int j=0;j < arr[i].length;j++){
				System.out.print(arr[i][j]+" ");
				if(arr[i][j] == 5)
					continue label1;
			}
		}
		System.out.println("END");//	
	}
}
           

break直接跳出双重循环,且不再进入循环。

continue虽然跳出了双重循环,但会再次进入最外层循环,并且紧接着上一次loop,执行最外层循环的下一次loop

双重循环必须紧接着label标签。