使用嵌套循环创建二维数组

时间:2017-10-19 02:42:52

标签: java for-loop multidimensional-array nested

我试图从书中理解这段代码。

int[][] grade = {
  { 1, 0, 1 },
  { 0, 1, 0 },
  { 1, 0, 1 }
};
for (int i = 0; i < 3; i++) {
  for (int j = 0; j < 3; j++) {
    if (i == j)
      System.out.print(grade[i][j] + grade[j][i] + " ");
    else
      System.out.print(grade[i][j] * grade[j][i] + " ");
  }
  System.out.println(" ");
}

我理解二维数组的逻辑是行和列。我只是不明白答案是怎么回事。

2 0 1
0 2 0
1 0 2

2 个答案:

答案 0 :(得分:0)

它循环通过二维数组。 如果i等于j,例如(0,0 1,1 2,2),则它将等级[i] [j]与等级[j] [i]相加。由于i和j相等,它会自己添加位置。

当i不等于j时,它将grade [i] [j]与等级[j] [i]相乘。

由于它们不相等,它会在网格中乘以2个不同的位置。 e.g。

等级[3] [1]乘以等级[1] [3],而不是它本身。

如果您将等级[1] [3]更改为2,则所有角落将输出为2

输入:

1 0 2
0 1 0
1 0 1

会输出:

2 0 2
0 2 0
2 0 2

答案 1 :(得分:-1)

它基本上循环遍历二维数组,如果它看到列和行号(i和j)相同,它将自己添加它。即将对角线乘以2。而对于其余的条目,它将与自身相乘。