Java 递归方法(线程中的异常 "main" java.lang.ArrayIndexOutOfBoundsException: 索引 4 超出界限长度 4)



我试图使用递归方法获取一个对象数组并打印出相反的结果,但我得到了上面列出的错误。有人能帮我吗?

public static void main(String[] args) {
int v = 1;
int x = 2;
String y = "dog";
String z = "cat";
Object[] a = {v, x, y, z};
printReverse(a, a.length);
}
public static void printReverse(Object[] arr, int i) {
if (i > 0) {
System.out.println(arr[i]);
printReverse(arr, i - 1);
}
else {
return;
}
}
}

printReverse的初始调用需要传递a.length -1。由于数组是0索引的,在初始调用再次出现之前,您已经超出了它的范围

错误消息表示您正在访问数组元素4,但只有索引为0到3的元素。Java中的数组索引从0开始。

最新更新