顺时针打印二维数组
主要思想:对于二维数组顺时针打印,相当于循环打印圈,不过圈是越来越小的。打印的起始位置横纵坐标相同(start,start),开始打印,分四个方向打印(左->右,上->下,右->左,下->上),但要注意边界判断条件,例如:当该二维数组为一行时,就只需要进行第一步打印,即第二步的前提条件是终止行号大于其实行号,而第三步的前提条件是该二维数组至少是两行两列的,即第三步的前提条件是除了要满足第二步的条件外,还要满足终止列号大于起始列号;第四步的前提条件是该二维数组至少是三行两列的,即终止列号比起始行号至少大2,且终止列号大于起始列号。而整个循环继续的条件为y>start*2&&x>start*2。
public static void printArray(int[][] arr,int start){
//顺时针打印数组(四个for循环,4个方向,注意边界问题)
int x=arr.length,y=arr[0].length;
int lx=x-1-start;//行结束
int ly=y-1-start;//列结束
for(int j=start;j<=lx;j++){//从左到右打印
int value=arr[start