有人可以解释一下如何做到无循环运行吗?
let x = prompt("Enter a first number to add:");
let y = prompt("Enter a second number to add:");
parseFloat(x);
parseFloat(y);
alert(peanoAddition(x, y));
function peanoAddition(x, y) {
while (y !== 0) {
if (y === 0) {
return x;
} else {
x = x + 1;
y = y - 1;
return x;
}
}
}
最佳答案
更改为递归函数非常简单。您的终止条件将相同:if (y === 0) return x
。否则,您只需使用peanoAddition
和x
的新参数再次调用y
并返回结果。
然后,如果y
不为0,则一次又一次调用该函数,直到y
为0。
以下代码与您的代码完全相同。但是,它也存在相同的问题。例如,当您呼叫peanoAddition(5, -2)
时会发生什么?您的代码和我的代码都将永远运行。
function peanoAddition(x, y) {
if (y === 0) {
return x;
}
return peanoAddition(x + 1, y - 1);
}