"之"字型打印数组

package practice;

public class PrintArraryByZhi {
	
	
	
	
	public static void printArr(int[][] arr){
		int x=0;
		int y=0;
		int m=0;
		int n=0;
		Boolean fromUp=true;
		int row=arr.length-1;
		int rank=arr[0].length-1;
		while(x!=row+1){
				printLevel(arr, x, y, m, n, fromUp);
				x=(y==rank?x+1:x);
				y=(y==rank?y:y+1);
				n=(m==row?n+1:n);
				m=(m==row?m:m+1);
				fromUp=!fromUp;
		}
	}
	
	
	public static void printLevel(int[][] arr,int x,int y,int m,int n,Boolean fromUp){
		if(fromUp){
			while(x<=m){
				System.out.print(arr[x++][y--]+" ");
			}
		}else{
			while(x<=m){
				System.out.print(arr[m--][n++]+" ");
			}
		}
	}
	
	public static void main(String[] args) {
		int[][] arr = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
//		printLevel(arr, 0, 2, 2, 0, false);
		printArr(arr);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42667028/article/details/86750250