有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java最大函数递归

我不熟悉递归,你能告诉我为什么这个函数的输出是=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;
    }
}

共 (1) 个答案

  1. # 1 楼答案

    执行maximum,索引为3

    3在数组的边界内,因此该方法不会在此时停止

    arr[3]3(第四个元素),比max(0)大,所以max将被分配给3

    在此之后,递归调用该方法,但它不会更改任何内容(您不会对返回值执行任何操作)

    最后,返回max(3)