我有一个问题。得到此代码后,我不明白该怎么想:
public class MysteryClass {
public static void mystery(int n) {
if (n > 0){
mystery(n-1);
System.out.print(n * 4);
mystery(n-1);
}
}
public static void main(String[] args) {
MysteryClass.mystery(3);
}
}
答案是4 8 4 12 12 4 8 4但我不知道他们是怎么得到的..有人可以解释一下吗?
最佳答案
这就是函数调用的方式。要了解更多信息,请拿铅笔和纸并绘制会发生什么情况。首先,做个谜(1)。然后继续神秘(2)和神秘(3)
mystery(3)
msytery(2)
mystery(1)
mystery(0)
prints 1 * 4
mystery(0)
prints 2 * 4
mystery(1)
mystery(0)
prints 1 * 4
mystery(0)
prints 3 * 4
msytery(2)
mystery(1)
mystery(0)
prints 1 * 4
mystery(0)
prints 2 * 4
mystery(1)
mystery(0)
prints 1 * 4
mystery(0)