我应该如何使用递归递增数字?

Not*_*ame 4 java recursion

我有一个数字的问题,我想使用递归函数递增.该函数没有像我期望的那样返回值.在调试时,我看到数字增加但是当返回值时,似乎对数字的调整以相反的顺序返回.

这是一个简单的例子:

private static int recursionTest(int num){
    if (num < 10){
        recursionTest(++num);
    }
    return num;
}

public static void main(String[] args) {
    System.out.println(recursionTest(1));
}
Run Code Online (Sandbox Code Playgroud)

输出始终为2.当我使用逐步调试器时,我看到以下内容:

  1. 每次迭代时,数字增加1.
  2. 当数字达到10时,执行return语句.
  3. 然后调试器突出显示"recursionTest(++ num);" 但是这个数字减少了1.
  4. return语句再次执行.
  5. 重复步骤3和4,直到最终返回值2.

为什么值最终会减少,如何返回最初计算的值?

Bab*_*aby 12

它应该是这样的:

private static int recursionTest(int num){
    if (num < 10){
       return recursionTest(++num);
    }
    else
       return num;
}
Run Code Online (Sandbox Code Playgroud)