java - 对Java教材中的递归解释感到困惑

标签 java recursion

所以我正在阅读教科书上对递归的解释,我感到很困惑。这是他们使用的示例。

    public static void message(int n){
        if (n > 0){
            {
                System.out.println("This is a recursive method");
                message(n-1);
            }
        }
    }

然后他们创建一个 main 方法,当 n=5 时调用上面的 message 方法,并解释该方法被调用 6 次。该方法调用自身 5 次,因此递归深度为 5。我没有得到的是:“因为在方法调用之后没有更多的语句要执行,所以该方法的第五个实例将程序的控制权返回到第四个实例。这会重复,直到该方法的所有实例都返回。”

方法返回是什么意思?

最佳答案

表示方法结束。由于该方法是void,所以没有实际的结果返回,但你可以这样写。

public static void message(int n){
    if (n > 0){
        {
            System.out.println("This is a recursive method");
            message(n-1);
        }
    }
    return;
}

关于java - 对Java教材中的递归解释感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30386812/

相关文章:

java - Json Multiset 与 ArrayList

recursion - 编译器用多态递归函数耗尽内存

python - 计算python中递归算法中的操作数

java - 我的递归程序查找数组中的最小值不起作用

java - mixinproperties 的 JCR 查询

java - Maven 插件创建可执行 jar 与未解压的依赖项 (jar with jars)

java - 使用相同的方法签名实现多个接口(interface)

java - Spring 3、Jersey (JSR-311) 和 Maven 依赖项

javascript - 如何使用递归创建二分查找

javascript - 递归函数返回后的函数调用