我想用以下值表示一个 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