我有一个问题.当我得到这段代码时,我无法理解如何思考:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
答案是4 8 4 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)
Run Code Online (Sandbox Code Playgroud)