你好,我是一名初学程序员,我尝试了各种不同的方法来使我的代码工作,但所有这些方法都失败了。如果有人能告诉我我的代码有什么问题以及如何修复arrayindexoutofboundsexception错误,我将非常感激。非常感谢你!
这是我的代码:
public static void main(String[] args) {
// TODO code application logic here
// getting the number of rows and columns for the maze from the user
Scanner scanner = new Scanner(System.in);
System.out.print("How many rows are in the maze? ");
int rows = scanner.nextInt();
int[][] maze = new int[rows][];
System.out.print("How many columns are in the maze? ");
int columns = scanner.nextInt();
maze[rows] = new int[columns];
// getting the data/danger levels for each row from the user
for (int c = -1; c < maze[rows].length; c++) {
System.out.print("Enter the danger in row " + (c + 1) + ", " + "separated by spaces: ");
maze[rows][c] = scanner.nextInt();
}
System.out.println(maze[rows][columns] + "\n");
}
}
答案 0 :(得分:1)
c
变量的初始值为-1
。
所以当你这样做时
maze[rows][c] = scanner.nextInt();
您收到错误,因为-1
索引不存在。
将其更改为
maze[rows][c+1] = scanner.nextInt();
答案 1 :(得分:0)
启动循环计数器c的值为-1,但数组以索引[0]开始。循环增量(c ++作为for循环中的最后一个参数)在每次循环迭代结束时执行,而不是在其开始时执行。
答案 2 :(得分:0)