java我可以从for循环中的1开始初始化2D数组吗
我正在尝试用Java创建一个2D数组,我希望该数组如下所示:
public class HelloWorld{
public static void main(String []args){
System.out.println("Hello World");
int[][] board = new int[3][3];
System.out.println(board.length);
for (int i = 1; i <= board.length; i++) {
for (int j = 1; j <= board[i].length; j++) {
board[i][j] = 1;
System.out.println(board[i][j]);
}
}
}
}
这是抛出ArrayIndexOutOfBoundsException
当我尝试在for
循环中使用i = 0
和j = 0
时。它很好用
# 1 楼答案
您正在循环直到
<= board.length
和<= board[i].length
事实上,这只应该是
< board.length
和< board[i].length
,因为数组索引的范围是0-array.length - 1
。因此,您也应该从i = 0
和j = 0
开始# 2 楼答案
问题来自
for
循环的终止条件。当您应该使用i < board.length
时,您正在使用i <= board.length
。第二个循环中的j <= board[i].length
也是如此请记住,在Java中,数组的第一个索引位于索引0处,因此最后一个索引位于索引
length - 1