有人可以告诉我这段代码的输出吗?我的理解是,一旦堆栈完成执行,display()方法将开始显示1,2,3,4,5,但是显示0,1,2,3,4可以解释一下这种情况吗?
package com.test.examples.datastructures.examples.recursive;
public class Recursive {
public static void main(String args[]) {
int var = 5;
recursive(var);
}
public static void recursive(int i) {
System.out.println("i " +i);
if (i<1) {
return;
}
recursive(i=i-1);
display(i);
}
public static void display(int i) {
System.out.println(" " +i);
}
}
最佳答案
display()
在递归结束之前不会显示任何内容。此时,i<1
转换为i为0。因此,最后一次递归调用返回,并且下一个语句将是第一次完成的显示。它输出0。然后从recursive()
返回,下一行显示(1),依此类推。
关于java - 递归方法输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32486049/