【问题标题】:JavaScript for loop returning undefinedJavaScript for 循环返回未定义
【发布时间】:2021-10-26 11:50:02
【问题描述】:

为什么我在下面的函数中未定义 isPrime(2)? 就好像在 var result; 之后的整个 if 语句被跳过了 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;
}

【问题讨论】:

  • 只改变for循环I中的条件
  • 谢谢。但这会使 2 成为合数(不是素数),这是不正确的。我只是改变了'var result = true;'反而。这应该可以解决问题。
  • 今天你将学到的最好的东西是学习如何使用浏览器的调试工具。您本可以逐行遍历您的...

标签: javascript for-loop undefined


【解决方案1】:

如果 num 为 2 则这部分代码不会被执行

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

因为 i 最初是 2 而 num 是 2,所以 2

【讨论】:

  • 谢谢。现在我明白为什么它不会运行 2。
猜你喜欢
  • 2016-06-19
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 2016-12-30
  • 1970-01-01
  • 2016-12-02
  • 2012-08-28
  • 2011-09-28
相关资源
最近更新 更多