java - 当我们调用 function(2) 时,为什么这个函数返回 83 而不是 5?

当我通过输入 2 运行此函数时,我不明白为什么它返回 83 而不是 5,因为它应该在 else 语句中调用 function(1),然后应该执行 if 语句并且该函数应该返回 5。

public static int function(int y) {
    if (y == 1)
        return 5;
    
    function(y - 1);
    y = y + 1;
    
    return 83;
}

最佳答案

它返回 83,因为您没有使用 function(y - 1);
的返回值 要测试它,请尝试:

public static int function(int y) {
    if (y == 1)
        return 5;
    else {
        int returnedValue =  function(y - 1);
        System.out.println("un used returned value: "+returnedValue);
        y = y + 1;
        return 83;
    }
}

更改为:

public static int function(int y) {
   if (y == 1)  return 5;
   /*else*/ 
   return function(y - 1); 
}

https://stackoverflow.com/questions/70321400/

相关文章:

spring - 摆脱 spring-boot-starter-data-mongodb 对易受攻击

python - 使用正则表达式 python 删除德语中的女性结尾

javascript - 如何使用顺风向表格添加间距

python - 过滤列,指定区分大小写

kotlin - 在 kotlin 中更改变量内部参数的值

go - 为什么 DefaultMask() 方法在 Golang 中有一个 IP 类型的接收者?

phpunit - 在 php 8.1.0 上使用 phpunit 9.4 捕获警告、通知和弃用

rust - 在 ".map(|x| *x)"之前是否有更好的 ".collect()"替代品?

amazon-web-services - Docker 推送错误保存凭据 : error stor

microsoft-graph-api - MS Graph Mail 在商店中找不到指定的对象