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

为什么java这样给二维数组赋值不行?这表示数组的长度是4,最大下标是3。但是,代码在操作期间访问下标为4的区域,导致越界。创建数组的代码是int array[=new int[n-1][n-1]根据

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

这表示数组的长度是4,最大下标是3。但是,代码在操作期间访问下标为4的区域,导致越界。创建数组的代码是

int array[

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

]根据调试信息,我们可以看到n=5,即我们创建了一个4x4二维数组,第一个是数组[0][0],最后一个是数组[3][3]。在断点的那一行,我们可以看到n-1=4,b1=3,也就是说,我们访问了数组[4][3],这显然是越界的。我们可以根据自己的需要尝试扩展数组或修改其他逻辑来纠正错误