Java while循环仅在一次迭代后停止

问题描述 投票:0回答:2

我有一个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);

任何人都知道为什么吗?

javascript iteration do-while break
2个回答
0
投票

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);
 

0
投票

原因是未定义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)

希望这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.