【发布时间】:2011-12-01 05:12:58
【问题描述】:
因为 power(base, exponent) 没有返回值,除非 exponent 为 0,所以最初,power(base, exponent -1) 不应该返回“未定义”,因此最初是不可乘的吗?所以,我在遵循这段代码的逻辑时遇到了麻烦。为什么/如何工作?
function power(base, exponent) {
if (exponent == 0)
return 1;
else
return base * power(base, exponent - 1);
}
【问题讨论】:
-
嗯,它从 if 中返回两种情况下的值。真的看不出你有什么问题。
-
power(13, 5) = 13*(13*(13*(13*(13*power(13, 0)))))。最终值仅在最后一次 power() 调用之后 计算。该函数计算 power(13, 0) 是 1,然后是 13*1,然后是 13*(13)...
-
哦。你应该提交那个。这是有道理的。
标签: javascript recursion logic return-value exponential