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

时间:2015-02-06 12:12:24

标签: javascript loops do-while

好的,首先,我是非常新的javascript和做一些教程尝试和学习语言。我的问题可能非常简单,但我无法解决这个问题!

好的,所以我做了一个非常简单的do / while循环。所有这一切应该是印刷"做条件,只有一次"一次到控制台和打印"做" 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");

4 个答案:

答案 0 :(得分:0)

做..虽然语法不正确,但在你的情况下,它就像



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....




修改

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



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....




即使条件失败,while循环体也会执行一次



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....




答案 1 :(得分:0)

这是预条件循环(while(condition) {...})和后置条件循环(do{...}while(condition);)之间的差异。

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

在你的例子中,你已经忘记了后置条件循环中的条件,所以它永远循环。

参考文献:

答案 2 :(得分:0)

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

  var doWhileLoop = function(text){

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

doWhileLoop("do");

答案 3 :(得分:0)

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