如何用二维创建二维网格。阵列?

时间:2016-10-31 04:13:44

标签: java

这是我目前的代码:

public static void main(String[] args) {
    int [][] twoD = new int [5][5];

    /*for(int i = 0; i<5; i++){
        for(int j = 0; j<5; j++){
            System.out.print(twoD[i][j] + "");
        }
    }*/

 }   
}

我似乎无法做到。我感到困惑,我删除了测试/评论部分。请忽略它。

我的目标是获得这样的二维数组:

1 2 3 4 5

2 4 6 8 10

3 6 9 12 15

4 8 12 16 20

5 10 15 20 25

然而,我只是没有得到它。我怎样才能得到这个结果?我是java的初学者。

7 个答案:

答案 0 :(得分:2)

首先,您需要使用数据填充数组,并且您忘记了数组的每一行System.out.println

int [][] twoD = new int [5][5];

// populate array with data
for(int i = 0; i<5; i++){
    for(int j = 0; j<5; j++){
        twoD[i][j] = (j+1)*(i+1);
    }
}

// print result
for(int i = 0; i<5; i++){
    for(int j = 0; j<5; j++){
        System.out.print(twoD[i][j]);
        System.out.print(" ");
    }            
    System.out.println();
}

答案 1 :(得分:2)

您还必须填充数据:

int[][] arr = new int [5][5];

for(int i = 0; i<5; i++){
    for(int j = 0; j<5; j++){
        arr[i][j] = (j+1)*(i+1);
    }
}

要打印的代码是:

for(int i = 0; i<5; i++){
    for(int j = 0; j<5; j++){
        System.out.print(arr[i][j] + " ");
    }            
    System.out.println();
}

答案 2 :(得分:0)

你做得很好,每次第二次结束时你只需要跳线System.out.println();

for(int i = 0; i<5; i++){
        for(int j = 0; j<5; j++){
            System.out.print(twoD[i][j] + " ");
        }
        System.out.println();
    }

答案 3 :(得分:0)

你是在正确的轨道上,for循环将打印出这样的数组,你需要做的就是在完成for(j)循环后打印一个新的行字符。但是,至少在您发布的代码片段中,您实际上并没有进行任何分配,因此您的数组中没有任何值可以打印,Java会将所有整数初始化为零。

答案 4 :(得分:0)

数组不只是自动填充递增的整数,而是数组的每个单元格将自动初始化为0,您必须设置希望数组包含的值。如果您愿意,可以使用测试类的概念来执行此操作,只需将2D数组的每个单元格设置为特定值即可。之后,您可以打印出阵列,确保在新行上打印阵列的每一行。例如:

public static void main(String[] args) {
    int [][] twoD = new int [5][5];
    int increment = 1;

    for(int i = 0; i<5; i++){
        for(int j = 0; j<5; j++){
            twoD[i][j] = increment++;
        }
    }
    for(i = 0; i<5; i++){
        for(j = 0; j<5; j++){
            System.out.print(twoD[i][j] + " ");
        }
        System.out.println();
    }
}

第一组嵌套for循环将2D数组的每个单元格设置为您想要的递增整数(注意increment++将首先将单元格设置为当前值increment,然后在变量中加一个)。第二组嵌套for循环将根据需要打印出数组。

答案 5 :(得分:0)

参考此代码

    int[][] twoD = new int[5][5];

    // add values to array
    for (int i = 0; i < 5; i++) {
        int val = 1;
        val = val + i;
        for (int j = 0; j < 5; j++) {
            twoD[i][j] = val * (j + 1);;

        }

    }

    // Print array
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5; j++) {

            System.out.print(twoD[i][j] + "   ");

        }

        System.out.println();
    }

答案 6 :(得分:0)

正如其他人指出你需要很好地打印它才能看到模式,i和j是你的数组的索引。但是,我看到你有一个很好的模式,所以只运行两个循环不会解决问题。 也许这样的事情会有所帮助(没有故意给出确切的答案)

int [][] twoD = new int [5][5];
int i;
// initialize
int c = 1; int j = 0;
for(c=1; c<5; c++) {
for( i = 1; i<=5; i++){        
        twoD[i-1][c-1] = c*c*i; twoD[c-1][i-1]=c*c*i;
    }
}

for( i = 0; i<5; i++) {    
   for( j = 0; j<5; j++) {   
     System.out.print(twoD[i][j]);System.out.print(" " );
   }
   System.out.println("\n");
}