有人可以解释该程序的控制流程吗?

迈克尔·利利

这是我的AP计算机科学课程中的示例程序,我无法理解它的控制流程。

public static void mystery( int n )
{
   System.out.println( "mystery called with n = " + n );

   if ( n == 0 )
   {
      System.out.println( "n is zero so no more recursive calls!" );
      return;
   }

   mystery( n - 1 );

   System.out.println( "We did it again with n = " + n );
}

public static void main( String[] args ) 
{
   mystery( 5 );
}

它输出以下内容:

mystery called with n = 5
mystery called with n = 4
mystery called with n = 3
mystery called with n = 2
mystery called with n = 1
mystery called with n = 0
n is zero so no more recursive calls!
We did it again with n = 1
We did it again with n = 2
We did it again with n = 3
We did it again with n = 4
We did it again with n = 5

到目前为止,我了解递归方法以及它如何通过以下方式调用自身:

mystery( n - 1 );

但是,我看不到它如何在输出以下五个语句后输出:

n is zero so no more recursive calls!

从逻辑上讲,似乎只会声明:

We did it again with n = 0

谁能帮助学生并向我解释它如何输出结果?

伯克哈德

在“ n为零”之后,不再需要递归调用!该方法继续(状态被放在堆栈上,然后在对method(n-1)的调用完成后加载。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有人可以解释cvPtr的OpenCV文档吗?

来自分类Dev

有人可以解释堆栈上下文吗?

来自分类Dev

有人可以解释堆栈上下文吗?

来自分类Dev

有人可以解释i +++ x吗?

来自分类Dev

有人可以解释这本词典的行为吗?

来自分类Dev

python tuple,有人可以解释这种行为吗?

来自分类Dev

有人可以解释redis setbit命令吗?

来自分类Dev

有人可以解释吗?

来自分类Dev

有人可以解释Selenium中的Screenshot吗?

来自分类Dev

有人可以解释这个(void **)&d_in吗?

来自分类Dev

VBA中的数组下标-有人可以解释吗?

来自分类Dev

为什么该指令不起作用..有人可以解释吗?

来自分类Dev

有人可以解释Python的子流程模块如何与命令提示符通信吗?

来自分类Dev

有人可以全面解释WebRTC统计API吗?

来自分类Dev

有人可以解释这个控制台输出吗?

来自分类Dev

有人可以解释__set和__get的重载吗?

来自分类Dev

有人可以向我解释为什么该按钮不起作用吗?

来自分类Dev

char **在交流程序中是什么意思,有人可以给出正确的解释吗

来自分类Dev

有人可以向我解释此JavaScript函数的流程吗?(关闭概念)

来自分类Dev

有人可以解释WaitForSeconds()吗?

来自分类Dev

有人可以解释在此Python程序中*的用法吗?

来自分类Dev

有人可以解释为什么该程序显示IllegalMonitorStateException吗?

来自分类Dev

有人可以解释一下该程序在堆栈中的工作方式吗?

来自分类Dev

PHP:有人可以解释此异常处理程序错误吗?

来自分类Dev

有人可以使用向量和算法解释这个c ++程序吗?

来自分类Dev

有人可以解释一下该命令的作用吗?

来自分类Dev

有人可以解释这个Java程序的算法吗?

来自分类Dev

有人可以解释这个c ++程序的输出吗?

来自分类Dev

有人可以解释输出吗?

Related 相关文章

  1. 1

    有人可以解释cvPtr的OpenCV文档吗?

  2. 2

    有人可以解释堆栈上下文吗?

  3. 3

    有人可以解释堆栈上下文吗?

  4. 4

    有人可以解释i +++ x吗?

  5. 5

    有人可以解释这本词典的行为吗?

  6. 6

    python tuple,有人可以解释这种行为吗?

  7. 7

    有人可以解释redis setbit命令吗?

  8. 8

    有人可以解释吗?

  9. 9

    有人可以解释Selenium中的Screenshot吗?

  10. 10

    有人可以解释这个(void **)&d_in吗?

  11. 11

    VBA中的数组下标-有人可以解释吗?

  12. 12

    为什么该指令不起作用..有人可以解释吗?

  13. 13

    有人可以解释Python的子流程模块如何与命令提示符通信吗?

  14. 14

    有人可以全面解释WebRTC统计API吗?

  15. 15

    有人可以解释这个控制台输出吗?

  16. 16

    有人可以解释__set和__get的重载吗?

  17. 17

    有人可以向我解释为什么该按钮不起作用吗?

  18. 18

    char **在交流程序中是什么意思,有人可以给出正确的解释吗

  19. 19

    有人可以向我解释此JavaScript函数的流程吗?(关闭概念)

  20. 20

    有人可以解释WaitForSeconds()吗?

  21. 21

    有人可以解释在此Python程序中*的用法吗?

  22. 22

    有人可以解释为什么该程序显示IllegalMonitorStateException吗?

  23. 23

    有人可以解释一下该程序在堆栈中的工作方式吗?

  24. 24

    PHP:有人可以解释此异常处理程序错误吗?

  25. 25

    有人可以使用向量和算法解释这个c ++程序吗?

  26. 26

    有人可以解释一下该命令的作用吗?

  27. 27

    有人可以解释这个Java程序的算法吗?

  28. 28

    有人可以解释这个c ++程序的输出吗?

  29. 29

    有人可以解释输出吗?

热门标签

归档