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

simple do/while loop infinite loop issue

本文关键字:循环 无限循环 问题 while do 简单      更新时间:2023-09-26

好的,首先,我对javascript非常陌生,并做了一些教程来尝试学习语言。我的问题可能非常简单,但我无法弄清楚!

好的,所以我做了一个非常简单的do/while循环。所有这些应该做的是将"执行条件,仅一次"打印到控制台,并将"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 = function(text) {
  var doCondition = 5;
  //beginning of loop
  do {
    console.log(text, doCondition);
    doCondition--;
  } while (doCondition > 0); //end of loop
};
doWhileLoop("do");
open console....

编辑

而循环体不会在条件失败时执行

var whileLoop = function(text) {
  var condition = 0;
  //beginning of loop
  while (condition > 0) {
    console.log(text, condition);
    condition--;
  } //end of loop
};
whileLoop("while");
open console....

执行

,而循环体将执行一次,即使条件失败

var doWhileLoop = function(text) {
  var condition = 0;
  //beginning of loop
  do {
    console.log(text, condition);
    condition--;
  } while (condition > 0); //end of loop
};
doWhileLoop("do while");
open console....

这不是因为变量 doCondition。这是因为你写错了。看看这个。

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

预条件循环(while(condition) {...}(和后条件循环(do{...}while(condition);(之间的区别。

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

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

引用:

  • do...while(后调节循环(
  • while....(预调节回路(

你拥有的不是单个循环,而是两个单独的循环。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");