我有一个do while循环,仅在一次迭代后停止,尽管条件的错误结果不止一次。另一件事-while语句之后的所有内容均未执行。代码很长,因此这里是测试条件的示例:
do{
let x=0;
let y=3;
for (let j=0; j<9; j++){
if(j%2==0){x++;}
}
}while(x<y);
任何人都知道为什么吗?
do语句内的x和y范围意味着while语句不存在。但是您的代码循环了多次
let x=0;
let y=3;
do{
for (let j=0; j<9; j++){
if(j%2==0){x++;}
console.log(x,y)
}
}while(x<y);
do{
let x=0;
let y=3;
for (let j=0; j<9; j++){
if(j%2==0){x++;}
console.log(x,y)
}
}while(x<y);
原因是未定义x。让我们有了一个块范围。并且您已在do块中声明了x和y,该代码块之后没有范围。如果要在while条件下使用它们,请将它们放在外面或将let更改为var。
您最终会遇到错误,因此一段时间后代码不会执行。要检测错误,请尝试抓住它。
do {
let x = 0;
let y = 3;
for (let j = 0; j < 9; j++) {
if (j % 2 == 0) {
x++;
}
}
} while (x < y);
do {
var x = 0;
var y = 3;
for (let j = 0; j < 9; j++) {
if (j % 2 == 0) {
x++;
}
}
} while (x < y);
console.log(x)
希望这会有所帮助!