- public class ArrayPrint {
- /**
- * @param args
- */
- public static void main(String[] args) {
- int[][] arr = arrayInit(4);
- printLXarray(arr);
- }
- public static int[][] arrayInit(int n){
- int[][] arr = new int[n][n];
- int start = 0;
- int end = n-1;
- int key =1;
- while((end-start)>=0){
- // 只要结束标记和开始标记不相同,那么循环进入下一圈
- for(int i = start,j= start;j<=end;j++,key++){
- arr[i][j] = key;
- }
- for(int i = start+1,j= end;i<=end;i++,key++){
- arr[i][j] = key;
- }
- for(int i = end,j= end-1;j>=start;j--,key++){
- arr[i][j] = key;
- }
- for(int i = end-1,j= start;i>=start+1;i--,key++){
- arr[i][j] = key;
- }
- // 用四个for循环走完一圈
- start++;
- end--;
- // 走完后再修改开始和结束的标记,进入下一圈
- }
- return arr;
- }
-
- public static void printLXarray(int[][] arr){
- //打印数组的函数
- for(int i=0;i<arr.length;i++){
- for(int j=0;j<arr[i].length;j++){
- System.out.printf("%4d",arr[i][j]);
- }
- System.out.println();
- }
- }
- }
复制代码
大家觉得这样写会不会更简洁一点 |