我只是介紹了遞歸和我得到了下面的代碼行:遞歸輸出
public class RecursionThree
{
public void run(int x)
{
if(x<5)
run(x+1);
out.println(x);
}
public static void main(String args[] )
{
RecursionThree test = new RecursionThree();
test.run(1);
}
}
和輸出應該是:5 4 3 2 1,我得到它爲什麼會打印5(因爲5 <將等於false,它會打印x,即5)。但是,我不明白爲什麼它會打印4 3 2 1。感謝您的幫助
你的輸出應該是'1 2 3 4 5',每個都在一個新行中。作爲一個概念的遞歸可以被看作是讓攝像機具有分離(實時)屏幕,其鏡頭指向其屏幕,其反過來顯示屏幕及其圖像在原始圖像的屏幕內不斷重複,除了每次較小。就像你的情況一樣。你的方法'run()'一次又一次地調用'run()',每次給它一個**更大的**號碼直到滿足條件(在這種情況下,直到數字是5)。 – shrmn
輸出是5 4 3 2 1,每個都在一個新行(我運行代碼),但我想我現在得到它,謝謝 – JavaB
@shrmn輸出不能是'1 2 3 4 5'。遞歸階段之後,而不是之前完成打印。這與你所說的「5 4 3 2 1」完全相反。發帖前請檢查。 –