java - Java 中的递归,当方法调用自身之后有 return 语句时

标签 java recursion

代码:

public static void main(String[] args) {
    System.out.println(test(13549));
}    

public static int test(int a){
    if(a<10)
        return a;
    int b = (a%10);
    int c = test(a/10);
    int d = Math.max(b,c);
    return d;
}

我了解该方法的作用(使用调试器后),并且我了解该方法会调用自身,直到它小于 10,然后它会运行并检查 b 或 c 中哪个更大。 现在我不明白的是,为什么当有 return 语句 return d; 时,它返回到 int c = test(a/10) 而不是开始int test(int a){ 方法。

最佳答案

return 语句返回test 调用的输出。因此,在 return d; 行上,它只是返回 c = test(a/10) 行中 test(a/10) 的值>.

关于java - Java 中的递归,当方法调用自身之后有 return 语句时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15487427/

相关文章:

java - 为什么错误表明 Method 是在 .class 文件中发现的,但无法在 class object] 中解析,其根本原因是什么?

java - 类似 "qualified this"但用于访问嵌套类而不是封闭类的成员

Java 条形图可点击条形图

javascript - 递归遍历数组的大O算法

java - 为什么我的递归解决方案会打印重复项?

java - 为什么 Java 的 Date.after() 在日期实际上更早时返回 'true'?

java - 构建 Spark 项目方法

c++ - 如何在cpp中控制递归

Java - 我可以使用递归或任何其他方法简化此代码吗?

php - 更改 SQL/PHP 网站菜单中的递归条件