我只想填写未初始化数组的顶行和底行:
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLUMNS; j++) {
if (i == 0 || i == (ROWS - 1)) {
values[i][j] = i;
}
}
}
但是,当我这样做时,它将用0填充介于两者之间的所有行:
0000000000
0000000000
0000000000
0000000000
4444444444
为什么会这样?
答案 0 :(得分:2)
Java中任何int
的默认值为零(0)。因此,任何未设置的将具有此值。无论是单个int
还是它们的数组都是如此。这样的结果是您的代码未触及的行包含零。
答案 1 :(得分:2)
仅显式访问顶部和底部行:
for (int i=0; i < ROWS; i+=ROWS-1) {
for (int j=0; j < COLUMNS; j++) {
values[i][j] = i;
}
}
这避免了不必要地迭代每一行。请注意,您看到的零可能是int
数组的默认值。