public class TwoDarray {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[][] = new int[2][2];
a[0][0] = 0; a[0][1] = 1; a[0][2] = 2;
a[1][0] = 3; a[1][1] = 4; a[1][2] = 5;
a[2][0] = 6; a[2][1] = 7; a[2][2] = 8;
for(int i=0;i<=2;i++)
{
for(int j=0;j<=2;j++)
{
System.out.print("\t"+a[i][j]);
}
System.out.println();
}
}
}
我使用eclipse并且它给出了错误:
线程中的异常&#34; main&#34; java.lang.ArrayIndexOutOfBoundsException:2 在TwoDarray.main(TwoDarray.java:7)
我认为我的代码还可以!但请建议我是否做错了...
我的数组结构与此类似,只有2行2列。
答案 0 :(得分:3)
如果数组的大小为n
,则其最大索引为n-1
。您有大小为2
的数组,因此最大索引为1
,但您尝试访问索引2
。
答案 1 :(得分:1)
初始化数组时索引要大一些:
int a[][] = new int[3][3];
答案 2 :(得分:1)
声明数组时:int a[][] = new int[2][2];
int[2]
表示您将有2例内存,因此a[0]
和a[1]
。
然后你试图触及a[2]
,导致错误。
您必须声明:
int a[][] = new int[2][2];
答案 3 :(得分:0)
int a[][] = new int[R][C];
这里R代表行,C代表列
hence a[2][2]
2行,2列
使用
更新您的代码int a[][] = new int[3][3];