我有一个问题。得到此代码后,我不明白该怎么想:

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)

09-15 14:02