循环访问 2 维数组

2022-09-02 23:03:48

我有一个“连接四板”,我用一个2d数组模拟(array[x][y] x=x坐标,y = y坐标)。我必须使用“System.out.println”,所以我必须遍历行。

我需要一种方法来迭代这种方式 [0,0] [1,0] [2,0] [3,0] [0,1] [1,1] [2,1] 等等

如果我使用正常程序:

for (int i = 0; i<array.length; i++){
     for (int j = 0; j<array[i].length; j++){
        string += array[i][j];
     } System.out.println(string)

}

它不起作用,因为它以这种方式迭代 [0,0] [0,1] [0,2] [0,3] 等

正常过程保持在 x 中并递增 y 直到列的末尾,但我需要在 y 中说,并递增 x 直到行的末尾。


答案 1

将其视为数组的数组,这肯定会起作用。

int mat[][] = { {10, 20, 30, 40, 50, 60, 70, 80, 90},
                {15, 25, 35, 45},
                {27, 29, 37, 48},
                {32, 33, 39, 50, 51, 89},
              };


    for(int i=0; i<mat.length; i++) {
        for(int j=0; j<mat[i].length; j++) {
            System.out.println("Values at arr["+i+"]["+j+"] is "+mat[i][j]);
        }
    }

答案 2

只需反转索引的顺序,如下所示:

for (int j = 0; j<array[0].length; j++){
     for (int i = 0; i<array.length; i++){

因为所有行都有相同数量的列,你可以使用此条件 j <数组[0].lengt in first for condition,因为您正在迭代矩阵