Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Do While - Fatal编程技术网

Javascript 简单do/while循环无限循环问题

Javascript 简单do/while循环无限循环问题,javascript,loops,do-while,Javascript,Loops,Do While,好的,首先,我对javascript非常陌生,正在做一些教程来尝试和学习该语言。我的问题可能很简单,但我想不出来 好的,我做了一个非常简单的do/while循环。所有这一切都应该做的是打印“do条件,仅一次”到控制台,并打印“do”到控制台5次 然而,它进入了一个无限循环。。可能是因为我在错误的地方定义了变量“doCondition”,但是我不能确定在逻辑上应该把它放在哪里 感谢您的帮助!如果你也能解释一下我错在哪里,我会非常感激 非常感谢, var doWhileLoop = function

好的,首先,我对javascript非常陌生,正在做一些教程来尝试和学习该语言。我的问题可能很简单,但我想不出来

好的,我做了一个非常简单的do/while循环。所有这一切都应该做的是打印“do条件,仅一次”到控制台,并打印“do”到控制台5次

然而,它进入了一个无限循环。。可能是因为我在错误的地方定义了变量“doCondition”,但是我不能确定在逻辑上应该把它放在哪里

感谢您的帮助!如果你也能解释一下我错在哪里,我会非常感激

非常感谢,

var doWhileLoop = function(text){
var doCondition = 5;
    do {
    console.log("do condition, once only");
};

while(doCondition > 0){
    console.log(text);
    doCondition--;
}
}

doWhileLoop("do");

做。。虽然语法不正确,但在您的例子中

var doWhileLoop=函数(文本){
var doCondition=5;
//循环开始
做{
console.log(文本、文档条件);
文件条件--;
}while(doCondition>0);//循环结束
};
doWhileLoop(“do”)

打开控制台…
这是预条件循环(
while(condition){…}
)和后条件循环(
do{…}while(condition);
)之间的区别

主要区别在于,后处理循环在评估条件之前将始终至少运行代码块一次,而预处理循环将在运行其代码块之前首先尝试评估条件

在您的示例中,您已经忘记了后条件循环中的条件,因此它将永远循环

参考资料:


    • 这不是因为可变的文档条件。这是因为你写的东西是错的。看看这个

        var doWhileLoop = function(text){
      
      var doCondition = 5;
          do {
          console.log("do condition, once only");
          doCondition--;
      }while(doCondition > 0)
      }
      
      doWhileLoop("do");
      

      您拥有的不是单个循环,而是两个独立的循环。
      do{}while()
      循环和
      while(){}
      循环仅在每次迭代之前还是之后对条件求值方面有所不同

      do…while
      循环中没有初始的“执行一次”步骤。只需将要执行一次的代码放在循环之前:

      var doWhileLoop = function(text){
        var doCondition = 5;
        console.log("do condition, once only");
        do {
          console.log(text);
          doCondition--;
        while (doCondition > 0);
      };
      
      doWhileLoop("do");
      

      什么是
      do
      block?。。你想达到这样的目标。。。在do之后删除分号并尝试此语法do{},而(条件)由于第一个循环中的语法错误,代码根本不会运行。您正在使用的实际代码看起来是什么样子的?我可能完全误解了do/while循环,但我认为它们是用来分别运行do语句和while语句的?因此,不管while条件如何,do都将运行一次?是的,你是对的。执行while只执行一次,下一次迭代将取决于while条件。这里唯一的问题是做语法。啊。。。我想我明白了。我在想do语句将完全独立于while条件运行。因此,如果我有一个do/while语句,其中的while条件将其限制为5次,那么该语句实际上会运行6次,一次用于do,5次用于while?尽管do将运行一次,而不管是否满足while条件,但如果满足该条件,do将仅作为正常的while运行?