以下是我对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