当我通过输入 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/