Java 在同一个条件中有两个递归语句是如何工作的?

Java 在同一个条件中有两个递归语句是如何工作的?,java,recursion,Java,Recursion,我试图理解这个递归代码是如何工作的,但我在互联网上还没有发现类似的东西 公开无效 { 如果n>0 { doSomethingn-1; System.out.printlnn; doSomethingn-1; } } 为什么输出是1213121? 这很简单 您调用doSomething3->doSomething2->doSomething1->doSomething0->条件未满足,因此返回->println1->doSomething0->条件未满足,因此返回 现在,您已到达函数doSomet

我试图理解这个递归代码是如何工作的,但我在互联网上还没有发现类似的东西

公开无效 { 如果n>0 { doSomethingn-1; System.out.printlnn; doSomethingn-1; } } 为什么输出是1213121? 这很简单

您调用doSomething3->doSomething2->doSomething1->doSomething0->条件未满足,因此返回->println1->doSomething0->条件未满足,因此返回

现在,您已到达函数doSomething1的末尾。println2被调用。 你叫doSomething1和以前一样


从doSomething2返回时,println3被调用…

为什么输出…?-设置断点并逐行遍历代码。如果在internet上找不到任何内容,则说明您尝试得不够。这是一种常见的做法。看看树遍历是如何工作的。它的工作原理是调用该方法,然后在方法调用完成后打印一些内容,然后再次调用该方法。