java九宫格的问题

public class Test {

 public static void main(String[] args) {
     int[][] arr = new int[3][3];
     int a = 2;// 第三行的行下标
     int b =3/2;//第二列的列下标
   for (int i = 1; i <= 9; i++) {// 给数组赋值

/*

  这里有个疑问,i-max=9,那么a++应该等于11,那么当i=9的时候,首先 arr[a++][b++]好像就不成立了 ,因为把i=9带入下面的判断,那么a应该等于9,而a++是<=3的,。那么是什么问题  还是这个a++代表的不是下标,而是这一行的某个值?   

    */

   arr[a++][b++] =  i;

        if (i % 3 == 0) {
            a = a - 2;
            b = b - 1;
        } else {
           a = a % 3;
          b = b % 3;
         }
  }
     System.out.println("输出九宫格:");
     for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            System.out.print(arr[i][j] + " ");

    }
        System.out.println("\n");
  }
 
 }
}


空空空空空空啊
浏览 951回答 3
3回答

qq_凯_29

第一次执行arr[a++][b++] 相当于  arr[2][1]=1这时a=3,b=2第二次执行arr[a++][b++] 相当于  arr[0][2]=2这时a=1,b=3第三次执行arr[a++][b++] 相当于  arr[1][0]=3这时a=2,b=1因为i%3=0所以a=0,b=0第四次执行arr[a++][b++] 相当于  arr[0][0]=4这时a=1,b=1第五次执行arr[a++][b++] 相当于  arr[1][1]=5这时a=2,b=2第六次执行arr[a++][b++] 相当于  arr[2][2]=6这时a=3,b=3因为i%3=0所以a=1,b=2第七次执行arr[a++][b++] 相当于  arr[1][2]=7这时a=2,b=3第八次执行arr[a++][b++] 相当于  arr[2][0]=8这时a=3,b=1第九次执行arr[a++][b++] 相当于  arr[0][1]=9这时a=1,b=2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java