初学者查询:将函数参数与for循环一起使用,由于某种原因跳过循环

时间:2018-06-26 22:00:50

标签: javascript

我想这很简单,但是我很困惑,认为这对我来说可能是一个很好的学习时刻。

代码如下:

var sumAll = function(lowRange, highRange) {
  var sumOf;
  var i;

  for (i = lowRange; i > highRange; i++) {
    sumOf += i;
  }

  return sumOf;
}

module.exports = sumAll

我正在通过odin项目进行工作,目前正在执行TDD部分。因此,功能框架和代码的最后一行是预先制作的。在这种情况下,函数参数为1、4。预期结果为10。

相反,我的测试返回了undefined。我检查了一下,这取决于我在顶部定义的内容。

这好像是一起跳过循环,我不知道为什么会这样。

3 个答案:

答案 0 :(得分:0)

您的for循环永远不会执行,因为您将i设置为lowRange并且执行条件为i > highRange。我假设lowRange < highRange会终止而不进入循环,因为它将在i大于highRange时运行,但是永远不会。

答案 1 :(得分:0)

初始化您的累加器

var sumOf = 0;

并更改循环条件

for (i = lowRange; i <= highRange; i++) {

答案 2 :(得分:0)

for循环的3个主要部分通常可以这样理解。

  • 初始化变量
  • 只要条件为真,就继续循环
  • 每次迭代后更改变量的值

在上面列表的第二步中,您的代码正在运行i > highrange。这将立即测试false并跳过循环,因为i的值为lowrange,并且我认为lowrange > highrange永远不会为真。您要替换的位置是i <= highrange,“小于或等于”。

对于循环很棘手,这些小错误甚至会带您进入高级地区。 :o