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