Java最大函数递归

问题描述 投票:0回答:1

我是递归的新手,请告诉我为什么此函数的输出为= 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;
    }
}
java function loops recursion max
1个回答
0
投票

您以maximum的索引执行3

[3在数组的边界内,因此该方法不会在这一点上停止。

[arr[3]3(第四元素),它比max(0)大,因此max将分配给3

此后,该方法被递归调用,但它不会改变任何东西(您对返回值不做任何事情。

最后返回max(3)。

© www.soinside.com 2019 - 2024. All rights reserved.