小编fre*_*138的帖子

应该返回布尔值的函数返回undefined

试图找出一个函数来检查一个数字是否为素数并且我遇到了麻烦.我确定有一种更简单的方法可以做到这一点,但为什么这个函数不会返回false,对于数字9?它为偶数返回false,但对于任何其他类型的复合数,它返回undefined,但由于它打印NOT PRIME,它也应该返回false.

function isPrime(n, i) {
    document.writeln(i);
    var nextNum = i + 1;
    var number = n;
    if (i < n) {
        if ((n % i) === 0) {
            document.writeln("NOT PRIME");
            return false;
        } else {
            document.writeln(nextNum);
            isPrime(number, nextNum);
        }
    } else if (i === n) {
        document.writeln("Recursion ends");
        return true;
    } else {
        document.writeln("Confused" + typeof i + typeof n);
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript

0
推荐指数
1
解决办法
1346
查看次数

标签 统计

javascript ×1