1

我正在尝试一些循环,在这个特定的情况下,我不明白为什么 sumSoFar = 0。这是来自 Learn Street.com 的任务

function sum(n) {
    var sumSoFar = 0;
    var currentNumber = 1;

    while (currentNumber <= n) {
        sumSoFar += currentNumber;
        currentNumber += 1;
    }

    return sumSoFar;
}
4

2 回答 2

4

sumSoFar在函数开始时被初始化为零,因为函数的其余部分使用运算符,该+=运算符获取 的当前值sumSoFar并为其添加一个值,然后将新值分配回sumSoFar. 如果它没有被初始化为零,那么它就没有初始值,对它的第一次+=操作就不会得到想要的结果。

将其初始化为零会为其提供所需的起点,以便在第一次通过 while 循环时,它会将currentNumber初始值添加到零并将其分配给sumSoFar所需的行为。

仅供参考,你可以在这里看到你的函数工作:http: //jsfiddle.net/jfriend00/kXrV8/在最新版本中,你可以尝试不同的输入参数给你的sum(n)函数。

于 2013-06-20T07:14:09.233 回答
1

如果您不初始化sumSoFar为零,则无法向其添加值,因为它不是数字。

于 2013-06-20T07:15:29.823 回答