我对这个for循环感到困惑:
for (var i=0,j=0;i<4,j<20;i++,j++) {
a=i+j;
}
console.log(a);
为什么答案是38?在我运行它之前,我认为答案是6。
答案 0 :(得分:0)
首先,这部分代码运行“i = 0,j = 0; i&lt; 4,j&lt; 20”,然后“a = i + j;”,然后i ++,j ++ 一旦,i <4,j <20就完成了。代码“console.log(a);”会跑。
我希望有帮助
答案 1 :(得分:0)
尝试查看i
和j
的值,即使停止循环的条件恰好在j
<上,您将看到它们在循环结束时都是19 / p>
打开调试器并运行以下
for(var i=0,j=0;i<4,j<20;i++,j++){
ab=i+j;
console.log("i", i);
console.log("j",j);
console.log("a", a);
}
答案 2 :(得分:0)
你想使用&amp;&amp;不是逗号运算符。我添加了更多的console.log步骤来显示中间步骤。
for(var i=0,j=0;i<4 && j<20;i++,j++){
a=i+j;
console.log("a: "+a+ " i+j:" + (i+j))
}
console.log(a);
在for循环的原始版本中,将逗号分隔条件与&amp;&amp;和分开的条件:
for(var i=0,j=0;i<4,j<20;i++,j++){
a=i+j;
console.log("(i<4, j<20): " + (i<4, j<20))
console.log("(i<4 && j<20): " + (i<4 && j<20))
}
console.log(a);