我正在尝试一些循环,在这个具体问题上,我不明白为什么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函数使用不同的输入参数。

07-24 14:53