表示具有 2D 数组的 8x8 维度的问题



我想用以下值表示一个 8x8 维度:

  • [0] [1] = 1 [0] [2] = 2 [1] [1] = 1 [1] [2] = 2 [1] [3] = 3 etc.

我编写了这段代码,但是每当我打印出数组时,它都会为所有奇数给我一个零,例如

  • [5] [3] = 0 [5] [6] = 6 [5] [5] = 0 [5] [4] = 4
int [] [] chessboard = new int [8][8];
for (int i = 0; i < chessboard.length; i++) {
chessboard [i] [0] = 0;
for (int j = 0; j < chessboard.length; j++) {
chessboard [i] [j] = j++;
}
}

首先,您不能使用一个数组的大小来迭代另一个数组,这是不安全的。如果将列索引存储在每个框中(它从 0 开始(,您还需要什么 indead,qo 您只需要通过设置值j以这种方式迭代(以及j++通过循环将值增加两次(

int[][] chessboard = new int[8][8]; // here all values are 0 as it's an int array
for (int i = 0; i < chessboard.length; i++) {
for (int j = 0; j < chessboard.length; j++) {
chessboard[i][j] = j;
}
}

chessboard[i][0] = 0;行无用,原因有两个:

  • 初始值,其中 0
  • 循环刚从 0 开始,所以它也设置了一个0

最新更新