我有一个函数可以检查一个数字是否可以被2.5整除,如果它没有加0.5则会再次使用新值调用它自己。当我像下面那样调用它时返回undefined但如果我在函数内console.log
而不是return
那么显示正确的向上舍入值。
function n(num){
if(num % 2.5 === 0){
return num;
}else{
num += 0.5;
n(num)
}
}
console.log(n(13.5))
有什么想法吗?
答案 0 :(得分:1)
您需要返回递归调用,以便再次检查您的条件,直到满足if条件:
function n(num){
if(num % 2.5 === 0){
return num;
}else{
num += 0.5;
return n(num); //<-- add return
}
}
console.log(n(13.5));
答案 1 :(得分:1)
是的,因为第二个n(num)
调用没有向原始调用者返回任何内容。
成功:
else{
num += 0.5;
return n(num);
}