我正在阅读一本名为“Think Java:如何像计算机科学家一样思考”的书,最近我介绍了递归方法。逆向递归java方法
public static void countdown(int n)
{
if (n == 0) {
System.out.println("Blastoff!");
} else {
System.out.println(n);
countdown(n - 1);
}
}
这将是用来降低到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);
}
}
它的计数方式是相反的,所以如果我为这两个条件陈述给出了论点3,那么第一个就是“3,2,1,Blastoff!”但第二个1会出现“Blastoff,1,2,3”....我不明白这是如何工作的,有人可以试着解释在这段代码中发生了什么,它会以相反的方式进行计数?
为了更好地理解它是如何工作,把println的是第一种方法行。 – RominaV