在相同条件下具有2个递归语句如何工作?

时间:2019-04-05 12:51:14

标签: java recursion

我试图了解此递归代码的工作原理,但在互联网上找不到类似的东西。

public void doSomething(int n)
{
    if (n > 0)
    {
        doSomething(n-1);
        System.out.println(n);
        doSomething(n-1);
    }
}

Why is the output 1213121?

1 个答案:

答案 0 :(得分:0)

这很简单。

您致电doSomething(3)-> doSomething(2)-> doSomething(1)-> doSomething(0)->不满足条件,因此您return-> {{1} }-> println(1)->条件不满足,所以您doSomething(0)

现在,您位于函数return的末尾。 doSomething(1)被调用。 您会像以前一样致电println(2)

doSomething(1)返回时,doSomething(2)被称为...