小编Tyl*_*r G的帖子

反转递归java方法

我正在读一本名为"思考Java:如何像计算机科学家一样思考"的书,我最近介绍了递归方法.

public static void countdown(int n)
{
  if (n == 0) {
      System.out.println("Blastoff!");
  } else {
      System.out.println(n);
      countdown(n - 1);
  }
}
Run Code Online (Sandbox Code Playgroud)

这将是一个正常的递归方法,用于倒数到0,我理解发生了什么,但如果你在System.out.println之前进行递归调用,就像这样

public static void countdown(int n)
{
  if (n == 0) {
      System.out.println("Blastoff!");
  } else {
      countdown(n - 1);
      System.out.println(n);
  }
}
Run Code Online (Sandbox Code Playgroud)

它以相反的方式计算,所以如果我为这两个条件语句给出参数3,那么第一个变为"3,2,1,Blastoff!" 但是第二个1是"Blastoff,1,2,3"....我不明白它是如何工作的,有人可以尝试解释这段代码中发生的事情,使其以相反的方式计数吗?

java recursion

2
推荐指数
1
解决办法
393
查看次数

标签 统计

java ×1

recursion ×1