繁体   English   中英

JavaScript for 循环返回未定义

[英]JavaScript for loop returning undefined

为什么我在下面的函数中没有为 isPrime(2) 定义? 就好像整个 if 语句紧跟在var result; isPrime(2) 被跳过,但其他输入不会被跳过。 我不明白为什么会这样。

function isPrime(num) {
  if (typeof num !== "number") {
    throw "The input needs to be a number!";
  }

  var result;

  if (num <= 1) {
    result = false;
  } else {
    for (i = 2; i < num; i++) {
      if (num % i === 0) {
        result = false;
        break;
      } else {
        result = true;
      }
    }
  }

  return result;
}

如果 num 为 2 那么这部分代码将不会被执行

for (i = 2; i < num; i++) {
  if (num % i === 0) {
    result = false;
    break;
  } else {
    result = true;
  }
}

因为 i 最初是 2 而 num 是 2,所以 2 < 2 是假的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM