思路:(1)
(2)定义一个变量time,记录输出数的个数(初始为0),当所有元素输出结束后,time的值为row*col。此为结束判定条件
public static void main(String[] args){
int a[][] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16},
{17,18,19,20}
};
int time=0; //5行4列,输出顺序为1,2,3,4,8,12,16,20,19,18,17,13,9,5,6,7,11,15,。。
int M=a.length;
int N=a[0].length;
int j=0;
for(int n=0;;n++){
for(j=n;j
time++;
System.out.println(a[n][j]);
}
if(time==M*N)
break;
for(j=n+1;j
time++;
System.out.println(a[j][N-n-1]);
}
if(time==M*N)
break;
for(j=N-n-2;j>=n;j--){
time++;
System.out.println(a[M-n-1][j]);
}
if(time==M*N)
break;
for(j=M-n-2;j>=n+1;j--){
time++;
System.out.println(a[j][n]);
}
if(time==M*N)
break;
}
}