线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:2 at test.GameOfLife.main(gameOfLife.java:10)

时间:2014-06-27 07:45:08

标签: java arrays

这是我的代码

class GameOfLife {
public static void main(String[] args) {
    int height = 0;
    int width = 0;
    int [][][] universe = new int [2][20][20]; 
    for (height=0; height <= 5; height ++){
        for (width=0; width <= 5; width++){
            universe [2][height][width]= 0;
        }
    }
    System.out.print(universe[2][2][3]);
}
}

线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:2 在test.GameOfLife.main(gameOfLife.java:10)

4 个答案:

答案 0 :(得分:1)

定义Universe时

int [][][] universe = new int [2][20][20];

它有两个点,索引0和索引1.你应该做

int depth;
for (depth=0; depth < universe.length; depth ++) {
  for (height=0; height < universe[depth].length; height ++){
    for (width=0; width < universe[depth][height].length; width++){
        universe [depth][height][width]= 0;
    }
  }
}

答案 1 :(得分:1)

您的数组universe: 第一个索引必须是01

定义一个数组时,索引从零开始: enter image description here

另见:

Java array

答案 2 :(得分:1)

大小为2的数组的最大索引为1

int [][][] universe = new int [2][20][20]
                               ^

因此,System.out.print(universe[2][2][3]);正在投掷ArrayIndexOutOfBoundException

答案 3 :(得分:0)

如果要访问Universe [2] [] [],则必须使用

进行定义
int [][][] universe = new int[3][20][20];

指针从'0'开始。