我在编辑器中运行此代码
let flag = true;
let counter = 0;
while(flag === true){
console.log(counter);
counter+=1;
if (counter === 100000){
break;
}
}
我想问为什么这段代码在99999处停止。在if块中,它表示如果counter
等于100000,则循环将停止。为什么它停在99999?
答案 0 :(得分:0)
您可以在检查后移动增量。
然后你得到100000
,因为输出更早,条件检查增量值。
let flag = true;
let counter = 0;
while (flag) {
console.log(counter); // <--\ allow an output
if (counter === 100000) { // ---/ of the last value
break;
}
counter++;
}
&#13;
答案 1 :(得分:0)
let flag = true;
let counter = 0;
while(flag === true){
counter+=1; // from 99999 to 100000
console.log(counter); // counter is 100000
if (counter === 10){
break;
}
}
只需将控制台日志行和增量行相互替换即可。
打印计数器时,只有在递增计数器后才能获得最后一次迭代的值,如果按照我的建议更改行,则打印的计数器是当前的迭代。
答案 2 :(得分:0)
当counter
等于100000时,循环 停止。但是,您将看到的最后一个数字是99999.这就是原因:
let flag = true;
let counter = 0;
while(flag === true){
// suppose this is the last iteration
console.log(counter); // 99999 is printed here
counter+=1; // now counter is 100000
if (counter === 100000){ // this becomes true
break; // the loop stops!
}
}
使其打印100000的一种方法是在console.log
之前添加另一个break
。