我正在閱讀一本名爲「Think Java:如何像計算機科學家一樣思考」的書,最近我介紹了遞歸方法。逆向遞歸java方法
public static void countdown(int n)
{
if (n == 0) {
System.out.println("Blastoff!");
} else {
System.out.println(n);
countdown(n - 1);
}
}
這將是用來降低到0計數正常的遞歸方法,我明白髮生了什麼,但如果你做遞歸調用之前的System.out.println這樣
public static void countdown(int n)
{
if (n == 0) {
System.out.println("Blastoff!");
} else {
countdown(n - 1);
System.out.println(n);
}
}
它的計數方式是相反的,所以如果我爲這兩個條件陳述給出了論點3,那麼第一個就是「3,2,1,Blastoff!」但第二個1會出現「Blastoff,1,2,3」....我不明白這是如何工作的,有人可以試着解釋在這段代碼中發生了什麼,它會以相反的方式進行計數?
爲了更好地理解它是如何工作,把println的是第一種方法行。 – RominaV