[英]How does having 2 recursive statements within the same conditional work?
我试图了解这个递归代码是如何工作的,但我在互联网上没有找到类似的东西。
public void doSomething(int n)
{
if (n > 0)
{
doSomething(n-1);
System.out.println(n);
doSomething(n-1);
}
}
Why is the output 1213121?
这很简单。
你调用doSomething(3)
-> doSomething(2)
-> doSomething(1)
-> doSomething(0)
-> 条件不满足所以你return
-> println(1)
-> doSomething(0)
-> 条件不满足遇见所以你return
。
现在您处于函数doSomething(1)
的末尾。 println(2)
被调用。 你像以前一样调用doSomething(1)
。
当你从doSomething(2)
返回时, println(3)
被调用......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.