use*_*ser 2 java recursion loops function
我正在玩这个功能:
public class x {
public static void main(String[] args) {
recurse(10);
}
public static int recurse(int theNumber) {
if(theNumber == 0) {
return 0;
}
else
{
System.out.println(theNumber);
theNumber--;
recurse(theNumber);
System.out.println(theNumber);
}
return -1;
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了这个输出:
10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9按任意键继续...
这怎么可能?我明白从10到0的倒计时来自哪里......但它究竟是如何重新计算的?我很确定我错过了关于递归的基本概念.有人可以填空白吗?
那是因为System.out.println(theNumber);你的方法中的最后一个.在递归调用方法和upcon完成方法后,它将打印这些值.