如何在JavaScript中修复这个潜在的无限循环?

时间:2017-10-27 13:59:52

标签: javascript factorial

因子分解问题的代码给出了“潜在的无限循环”错误。

function factorialize(num) {
  for (var i = 1; i < num; i++) {
     num *= (num - i);
  }
  return num;
}

请尽可能帮我解释一下。

1 个答案:

答案 0 :(得分:1)

  

我对这个因子分解问题的潜在解决方案给出了“潜力   无限循环“bug。请尽可能帮我解释一下。

因为您增加了num的价值,i在这种情况下永远不会大于或等于num

初始化一个新变量

function factorialize(num) {
  var result = 1; 
  for (var i = 1; i <= num; i++) {
     result *= (i);
  }
  return result;
}

<强>演示

function factorialize(num) {
  var result = 1;
  for (var i = 1; i <= num; i++) {
    result *= (i);
  }
  return result;
}
console.log(factorialize(3));
console.log(factorialize(4));
console.log(factorialize(5));