我今天在这,因为我(和我的老师)在javascript中不理解错误。
以下代码只是函数的一个因子(强制用函数执行)。但是在返回时我的值在undefined中被更改。
tests.py

我不明白为什么它会返回undefined。有人可以解释一下吗? 此外,如果函数只执行一次,该函数也可以工作。
提前谢谢。
答案 0 :(得分:3)
您必须返回递归调用,否则facto
的第一次调用将永远不会遇到return
语句,从而导致第一次调用(默认情况下)返回undefined
。更改为return facto(chiffre, fact);
:
var test;
do {
var result = parseInt(prompt("Un chiffre supérieur à 1"));
} while (isNaN(result) || result < 2);
test = facto(result, 1);
console.log(test);
function facto(chiffre, fact) {
fact = fact * chiffre;
chiffre = chiffre - 1;
if (chiffre == 1) {
return fact;
} else {
return facto(chiffre, fact);
}
}