Javascript while 循环仅在一次迭代后停止
Javascript Do while loop stops after one iteration only
我有一个只在一次迭代后停止的 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没有定义。 let 有一个块作用域。并且您在 do 块中声明了 x 和 y,该块之后没有作用域。如果您想在 while 条件下使用它们,请将它们放在外面或将 let 更改为 var.
您将以错误结束,因此代码不会在一段时间后执行。用 try catch 来感知错误。
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)
希望对您有所帮助!
我有一个只在一次迭代后停止的 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没有定义。 let 有一个块作用域。并且您在 do 块中声明了 x 和 y,该块之后没有作用域。如果您想在 while 条件下使用它们,请将它们放在外面或将 let 更改为 var.
您将以错误结束,因此代码不会在一段时间后执行。用 try catch 来感知错误。
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)
希望对您有所帮助!