我正在尝试一些循环,在这个特定的我不明白为什么sumSoFar = 0。 这是Learn Street.com的任务
function sum(n) {
var sumSoFar = 0;
var currentNumber = 1;
while (currentNumber <= n) {
sumSoFar += currentNumber;
currentNumber += 1;
}
return sumSoFar;
}
答案 0 :(得分:4)
sumSoFar
在函数开始时被初始化为零,因为函数的其余部分使用+=
运算符,该运算符获取当前值sumSoFar
并为其添加一个值然后将新值分配回sumSoFar
。如果它没有初始化为零,那么它将没有初始值,并且对它的第一个+=
操作将没有所需的结果。
将其初始化为零会为其提供所需的起点,以便第一次通过while循环时,它会将currentNumber
添加到零的初始值,并将其分配给sumSoFar
,这是所需的行为
仅供参考,您可以在此处查看您的功能:http://jsfiddle.net/jfriend00/kXrV8/,在最新版本中,您可以尝试使用sum(n)
功能的不同输入参数。
答案 1 :(得分:1)
如果您未将sumSoFar
初始化为零,则无法为其添加值,因为它不是数字。