JavaScript循环时计数变量

时间:2014-11-09 16:24:35

标签: javascript

在比较whilefor循环之后,我有一个问题,即while循环如何跟踪它所在序列中的哪个计数。基本for循环如下:

for (var i = 0; i < 5; i++) {
    console.log(i);
}

因此,第一次运行时,i等于0,它满足i小于5的条件,因此它执行代码块。然后它增加变量i,以便在下一个序列i等于满足条件的1,依此类推。

while循环似乎没有存储该类信息的变量。这是我在网上找到的一段代码。

function factorial(n) {
    var result = n;
    while (n > 1) {
        result = result * (n-1);
        n--;
    }
    console.log(result);
}

factorial(3);

因此,在调用factorial(3)后,结果等于3,大于1,因此代码执行,结果变为6。在下一个序列中,n等于2,因此6乘以2减去16,因此最终输出为{{1} }。我的问题是为什么6循环中没有像n变量那样的i变量?当循环递减for时,为什么不是一遍又一遍地n减去3

2 个答案:

答案 0 :(得分:1)

你自己说:“当循环减少n。”

如果n == 3并且您减去它,那么n将等于2,依此类推,直到等于1,条件while (n > 1)将评估为false并且循环将停止。

答案 1 :(得分:1)

实际上Brian,有一个变量n,该函数将其作为参数。

n--逐个递减,这就是为什么它不会一遍又一遍地重复3 - 1。