gpt4 book ai didi

java - 递归打印

转载 作者:行者123 更新时间:2023-12-01 06:43:13 24 4
gpt4 key购买 nike

我有这个类,只是打印一个 int:

class PRecursion  {
public static void main(String[] args){
foo(1);
}

public static void foo(int x){
System.out.println("" + x);

if (x < 3)
foo(x+1);
System.out.println(""+x);
}

}

输出:

1
2
3
3
2
1

为什么是向后打印然后递减?

最佳答案

它实际上并没有递减。正在发生的事情是:

  • 您正在调用 foo(1)
  • foo(1) 执行该操作并开始递归
  • 递归会持续您指定的时间(在您的示例中为foo(3))
  • 递归完成后,foo(1)仍然有一条语句要执行,那就是:

    System.out.println(""+x);

因此,您会第二次看到 foo(1) 的打印,但是是在所有其他打印完成之后。每当使用不同的数字调用 foo() 时,情况也是如此。因此,最终它看起来像是在递减,而实际上您只是以相反的顺序第二次打印相同的值。

关于java - 递归打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29574863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com