我想这很简单,但是我很困惑,认为这对我来说可能是一个很好的学习时刻。
代码如下:
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
。我检查了一下,这取决于我在顶部定义的内容。
这好像是一起跳过循环,我不知道为什么会这样。
答案 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