3 回答

TA贡献1862条经验 获得超6个赞
因为 Java 中0的数组是索引的,所以数组的长度不是有效的索引。因此,您应该在 for 循环中使用<而不是<=:
for (int j = 0; j < y; j++) {
for (int l = 0; l < x; l++) {
System.out.println("j: " + j + " l: " + l);
map[j][l] = 1;
}
}

TA贡献1824条经验 获得超6个赞
从两个循环中删除等于
int y = 5;
int x = 4;
int[][] map = new int[y][x];
for (int j = 0; j < y; j++) {
for (int l = 0; l < x; l++) {
System.out.println("j: " + j + " l: " + l);
map[j][l] = 1;
}
}
没有第 5 列,因为它的大小是 5。所以索引像 0、1、2、3、4。第 4 行也是如此。由于该大小为 4,因此索引将变为 0、1、2、3

TA贡献1798条经验 获得超7个赞
在java中,数组索引是从0
到length-1
。
所以,在你的情况下, from 0
toy-1 = 4
和 from 0
to x-1 = 3
。你的输出似乎完全没问题。的第一个值j
应该是 0。 有 5 个不同的值j
, 有 4 个不同的值l
。
改回<=
以<
在for循环。(这部分导致错误:l
不能从0
到4
,只能从0
到3
)
添加回答
举报