您能一步一步向我解释一下此Java代码吗?

时间:2020-06-28 10:57:27

标签: java

这是代码,我不明白

public class main {

    public static void main(String[] args) {
        int result = sum(10);
        System.out.println(result);
    }
    public static int sum(int k) {
        if (k > 0) {
            return k + sum(k - 1);
        } else {
            return 0;
        }
    }
}

结果是55

1 个答案:

答案 0 :(得分:0)

这是一种递归方法。

只要k > 0,该方法将以较小的值k进行调用。

初始呼叫sum(10)返回

 10 + sum(9) == 10 + 45 == 55

sum(9)返回

9 + sum(8) == 9 + 36 == 45

sum(8)返回

8 + sum(7) == 8 + 28 == 36

...

sum(2)返回

2 + sum(1) == 2 + 1 == 3

sum(1)返回

1 + sum(0) == 1 + 0 == 1

sum(0)返回0。

因此,该方法返回0到10之间的所有整数之和,即55。