Java 递归和行执行

Java 递归和行执行,java,recursion,Java,Recursion,我知道递归是如何工作的,但在这种情况下,有什么东西可以打印出来吗 void foo(int num) { if(num < 1) return; foo(num - 1); System.out.println(num); } void foo(int num){ if(num

我知道递归是如何工作的,但在这种情况下,有什么东西可以打印出来吗

void foo(int num) {
     if(num < 1) 
       return;
     foo(num - 1);
     System.out.println(num);
 }
void foo(int num){
if(num<1)
返回;
foo(num-1);
系统输出打印项数(num);
}

假设我们让num=5,那么if条件不满足,我们将5发送到foo(5-1)中,依此类推。当num达到0时(即调用
foo(0)
),递归结束,因此在
foo(0)
返回后,打印1。然后
foo(1)
返回并打印2,依此类推。

递归调用
foo
返回后执行
println
行。一个递归调用的打印将不会打印,直到一级以下的递归调用有机会打印其行并结束


因为如果
num<1
,它不会打印,所以要打印的第一个数字将是
1
,然后是
2
,依此类推,直到打印原始的
num
(例如
5
)。如果原始的
num
0
或为负数,则不会打印任何内容。

nvm我只是在eclipse上运行了它