我是Javascript的新手,我需要了解我刚刚在互联网上看到的这个简单代码如何工作:
var f = 1;
var i = 2;
while(++i<5) {
f*=i;
}
console.log(f);
有人可以帮我理解这个循环是如何工作的吗?
答案 0 :(得分:3)
检查评论以理解它:
var f = 1;
var i = 2;
while(++i<5) { //will increment first and then check if the incremented value is less than 5
f*=i; //can also be written as f = f*i
}
console.log(f);
第一次迭代::while(3&lt; 5)它将使f = 1 * 3即3
第二次迭代::while(4&lt; 5)它将使f = 3 * 4即12
第三次迭代::while(5 <5),这是假的,所以循环将停止
答案 1 :(得分:2)
执行相同操作的不那么神秘的while
循环将是:
var f = 1;
var i = 2;
++i; // increment i
while (i < 5) { // loop while i is less than 5
f = f * i; // assign f * i to f. aka "scale f by i"
++i; // increment i
}
console.log("i:", i, "f:", f);
&#13;
这是一张桌子
Iteration | i | f
------------------------------
Before loop | 3 | 1
After 1st | 4 | 3
After 2nd | 5 | 12
它在第二次迭代后退出,因为5不小于5.
答案 2 :(得分:1)
每次执行while循环时,括号内的表达式都是真实的(https://developer.mozilla.org/en-US/docs/Glossary/Truthy)。因此,当i
小于5
时,执行迭代。但++
之前的i
可能会非常棘手。在执行之前添加了前缀,因此,此循环将使用i=2+1=3
和i=3+1=4
进行迭代。