有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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 = 0j = 0时。它很好用


共 (2) 个答案

  1. # 1 楼答案

    您正在循环直到<= board.length<= board[i].length

    事实上,这只应该是< board.length< board[i].length,因为数组索引的范围是0-array.length - 1。因此,您也应该从i = 0j = 0开始

  2. # 2 楼答案

    问题来自for循环的终止条件。当您应该使用i < board.length时,您正在使用i <= board.length。第二个循环中的j <= board[i].length也是如此

    for (int i = 0; i < board.length; i++) { 
        for (int j = 0; j < board[i].length; j++) { 
            board[i][j] = 1; 
            System.out.println(board[i][j]);
        } 
    }
    

    请记住,在Java中,数组的第一个索引位于索引0处,因此最后一个索引位于索引length - 1