簡體   English   中英

在同一個條件中使用 2 個遞歸語句如何工作?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM