我明白遞歸時它只在自身上被調用一次,並且當有兩個時,我理解遞歸,因爲一個遞歸必須先完成或者在第二個可以開始之前完成。瞭解使用print語句的雙遞歸
我想了解河內的塔,但我真的不明白的是,當有兩個遞歸與打印語句時,讀取代碼行的順序。
有人可以簡單地分解訂單嗎?我創建了這個簡單的例子(其中test(3);)
爲什麼print語句運行?是不是立即調用它自己?
public static void test(int n){
if(n>0){
test(n-2);
test(n-1);
System.out.println("print " + n);
}
}
「_我真的不明白是讀取代碼行的順序。是否有人可以簡單地分解順序?_」您可以使用調試器來查看執行時的流程。 – csmckelvey
只有當所有中間方法調用都返回時,print語句纔會運行,因此中間方法調用將在當前調用之前打印並返回。 – Berger
我不確定如何使用調試器來顯示打印語句。通過正常步驟運行它只顯示它讀取的行。 @berger,所以每次該方法調用自己它執行打印語句是這樣嗎? –