【发布时间】:2022-01-10 14:48:31
【问题描述】:
我正在尝试创建一个递归返回数组长度的方法(作为学习练习)。我尝试传入一个长度为 4 的数组,但该方法只返回 1。我还尝试在 if 语句之外调用递归方法,这只会给出 StackOverflowError。为什么这个方法返回一个,我怎样才能让它返回正确的长度?
public static int findArrayLength(int i, int length, int[] array) {
if(i < array.length) {
length += 1;
i++;
findArrayLength(i, length, array);
}
return length;
}
【问题讨论】:
-
findArrayLength(i, length, array);->return findArrayLength(i, length, array); -
哇,成功了。但是,为什么我的代码完全不起作用?
-
因为您递归调用该方法但丢弃结果并返回第一个
length,即1。