为什么java这样给二维数组赋值不行

2025-03-22 01:59:11
推荐回答(1个)
回答1:

从报错信息中可以看出数组越界了

java.lang.IndexOutofBoundsException:Invaild array range:4 to 4

说明数组长度为4,最大下标为3,但是代码运行过程中访问了下标为4的区域,造成了越界.

创建数组的代码为

int array[][] = new int[n-1][n-1];

根据debug信息可知n=5,即创建了一个4x4的二维数组,数组第一个为array[0][0],最后一个为arrary[3][3].

在打断点的那一行可以看出n-1=4,b+1=3,即访问了arrary[4][3],显然越界了.

可以尝试扩大数组或者根据自己的要求修改其他逻辑来改正错误.