我是一名新程序员,而且我正在学习多维数组。我写了这个简单的代码,我不知道为什么我得到这个编译错误:
线程中的异常" main" java.lang.ArrayIndexOutOfBoundsException:2 在Arrays.main(Arrays.java:21)
public class Arrays {
public static void main(String[] args) {
int [][][] a = new int [2][3][4];
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
for(int k = 0; k < a[j].length; k++){
System.out.print(a[i][j][k]);
}
System.out.println();
}
System.out.println();
}
System.out.println();
}
}
如果我将数组更改为3x3x3,则代码可以正常工作
public class Arrays {
public static void main(String[] args) {
int [][][] a = new int [3][3][3];
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
for(int k = 0; k < a[j].length; k++){
System.out.print(a[i][j][k]);
}
System.out.println();
}
System.out.println();
}
System.out.println();
}
}
为什么?
答案 0 :(得分:-1)
非常简单。您的数组没有相同的行和列来处理此类迭代。你可以清除自己的疑问。只需打印出i,j和k的值。您将能够看到在迭代中的某个点上没有可以引用的索引。因此它是编译时错误