java运行出现这个错误Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:

我请教一下,java运行出现这个错误Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4?

public class arrey {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根

int n=4;
int[][] arr=new int[n][n];
int data;
for(int row=0;row<arr.length;row++){// 直接用arr.length获取的是二维数组的行数
for(int col=0;col<arr[row].length;col++){
data=row+col+1;
if(data<=n){
arr[row][col]=data;
}else{
arr[row][col]=data%n;
}
}
}
for(int row=0;row<arr.length;row++){
for(int col=0;col<=arr[row].length;col++){
System.out.print(arr[row][col]);
System.out.print(' ');
}
System.out.println();
}
}

}
1 2 3 4 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at arrey.main(arrey.java:25)
最新回答
和旋帅哥

2024-10-02 10:03:59

最后这里出错了,不应该是小于等于,而应该是小于数组行对应的数组的长度
for(int row=0;row<arr.length;row++){
for(int col=0;col<=arr[row].length;col++){
应该是
for(int row=0;row<arr.length;row++){
for(int col=0;col < arr[row].length;col++){
良辰未赏透

2024-10-02 17:15:14

数组下标越界
在for循环的时候你写的都是死循环 因为row和col都永远是0,要在循环里给它们赋值
舟遥客

2024-10-02 11:12:06

25行的
System.out.print(arr[row][col]);
需要改一下,数组越界的错误
呵呵