[英]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.