Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Do while循环仅在一次迭代后停止_Javascript_Iteration_Do While_Break - Fatal编程技术网

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

Javascript Do while循环仅在一次迭代后停止,javascript,iteration,do-while,break,Javascript,Iteration,Do While,Break,我有一个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=0; 设y=3; for(设j=0;j

我有一个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=0;
设y=3;
for(设j=0;j<9;j++){
如果(j%2==0){
x++;
}
}
}而(x

有人知道为什么吗?

do语句中x和y的范围意味着它在while语句中不存在。但是您的代码正在循环多次

设x=0;
设y=3;
做{

对于(设j=0;j原因是x未定义。let有一个块作用域。并且您在do block中声明了x和y,该do block在块后没有作用域。如果您想在while条件下使用它们,请将它们放置在外部或将let更改为var

您将以一个错误结束,因此,代码在一段时间后不会执行。要检测错误,请使用try-catch将其包围

do{
设x=0;
设y=3;
for(设j=0;j<9;j++){
如果(j%2==0){
x++;
}
}

}while(x
我只会定义
之外做
…或者,如果你坚持
var
s。虽然在块外测试变量时在块中分配变量是有效的JavaScript,但一些编辑器会产生错误,除非你允许它…因此我会避免这种做法,并在两个街区都有通道。