以下是我對AP計算機科學問題的修改。 書上說應該打印0010我認爲它應該打印0010012 但實際上下面的代碼打印3132123Java - 遞歸
這是怎麼回事? 另外它似乎沒有任何停止條件?
public class Mystery {
public static void main(String[] args) {
int n;
n = 3;
mystery(n);
}
public static void mystery(int n) {
int k;
for (k = 0; k < n; k++) {
mystery(k);
System.out.print(n);
}
}
}
實際問題顯示爲: 請考慮以下方法。
public void mystery (int n)
{
int k;
for (k=0 ; k < n ; k++)
{
mystery(k);
System.out.print(n);
}
}
呼叫神祕(3)返回什麼值?
我現在明白循環形成停止條件,我想我理解jhamon的評論「最後的指令是打印n。n是3,沒有辦法只打印'0010012'」但我不明白爲什麼書上說,應該從我所看到的打印00100123.
由於Batsheba說,我已經試過看着變量在調試,但書上說應該打印00100123. 非常感謝jhamon對更正後的代碼,所以這本書是錯的?
最後的指令是打印'n'。 ''n'is 3,沒有辦法只打印'0010012' – jhamon
'它也沒有任何停止條件嗎?!'它有一個:'k
BackSlash
'k
Bathsheba