我是递归的新手,请告诉我为什么此函数的输出为= 3
public class Rekursion2 {
public static void main(String[] args) {
int[] arr = {6,1,2,3,1,100,76};
System.out.println(maximum(arr,3));
}
static int maximum(int[] arr, int i) {
int max = 0;
if(i < 0 || i > arr.length) {
return max;
}
if(arr[i] > max) max=arr[i];
maximum(arr, i-1);
return max;
}
}
您以maximum
的索引执行3
。
[3
在数组的边界内,因此该方法不会在这一点上停止。
[arr[3]
是3
(第四元素),它比max
(0)大,因此max
将分配给3
。
此后,该方法被递归调用,但它不会改变任何东西(您对返回值不做任何事情。
最后返回max
(3)。