【发布时间】:2014-03-30 04:08:13
【问题描述】:
我对这个 for 循环感到困惑:
for (var i=0,j=0;i<4,j<20;i++,j++) {
a=i+j;
}
console.log(a);
为什么答案是 38?在我运行它之前,我认为答案应该是 6。
【问题讨论】:
标签: javascript for-loop
我对这个 for 循环感到困惑:
for (var i=0,j=0;i<4,j<20;i++,j++) {
a=i+j;
}
console.log(a);
为什么答案是 38?在我运行它之前,我认为答案应该是 6。
【问题讨论】:
标签: javascript for-loop
尝试查看i 和j 的值,您会发现当循环结束时它们都为19,即使停止循环的条件恰好是j
打开您的调试器并运行以下命令
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);
}
【讨论】:
您想使用 && 而不是逗号运算符。我添加了更多的 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 循环的原始版本中,将逗号分隔的条件与 && 分隔的条件进行比较:
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);
【讨论】: