我在线程" main"中得到以下异常:java.lang.ArrayIndexOutOfBoundsException: 2 error:
我的代码:
int ia=445;
int ja=445;
double [][][]ma=new double [445][445][2];
ma=na;
for (int kk=1;kk<=2;kk++)
{
int jj=2;
if (kk == 2)
{
jj=ja;
}
for (int ii=2;ii<ia-1;ii++)
{
double uu=0.5*abs(ma[ii][jj][2]+ma[ii-1][jj][2]);
System.out.println(uu);
}
}
虽然没有 ArrayIndexOutOfBoundsException 问题,但我仍然遇到此异常。有人可以解释如何解决这个问题吗?
答案 0 :(得分:1)
问题在于:
double uu=0.5*abs(ma[ii][jj][2]+ma[ii-1][jj][2]);
^ ^
here here too
您只能访问阵列的第三个维中的索引0
和1
。
也许你想要/需要:
double uu=0.5*abs(ma[ii][jj][1]+ma[ii-1][jj][1]);
或
double uu=0.5*abs(ma[ii][jj][0]+ma[ii-1][jj][0]);
答案 1 :(得分:1)
ma[ii-1][jj][2]
和ii
的值如何, jj
都会给您一个例外,因为最后一个索引必须是0或1(因为维度为[445][445][2]
)。