简单 do/while loop 无限循环问题
simple do/while loop infinite loop issue
好的,首先,我是 javascript 的新手,正在学习一些教程来尝试学习这门语言。我的问题可能非常简单,但我想不通!
好的,我做了一个非常简单的 do/while 循环。所有这些应该做的就是向控制台打印一次 "do condition, only once" 并向控制台打印 "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");
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....
编辑
当条件失败时,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....
do 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....
这是预条件循环 (while(condition) {...}
) 和 post 条件循环 (do{...}while(condition);
) 之间的区别。
主要区别在于 post 条件循环将 始终 运行 代码块 至少一次 在评估条件之前,而预条件循环将首先尝试在 运行 其代码块
之前评估条件
在您的示例中,您忘记了 post 条件循环中的条件,因此它会永远循环。
参考文献:
这不是因为变量 doCondition。这是因为你正在写你的 do-while 错误。看看这个。
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
循环中没有初始 "do once" 步骤。把你想执行一次的代码放在循环之前:
var doWhileLoop = function(text){
var doCondition = 5;
console.log("do condition, once only");
do {
console.log(text);
doCondition--;
while (doCondition > 0);
};
doWhileLoop("do");
好的,首先,我是 javascript 的新手,正在学习一些教程来尝试学习这门语言。我的问题可能非常简单,但我想不通!
好的,我做了一个非常简单的 do/while 循环。所有这些应该做的就是向控制台打印一次 "do condition, only once" 并向控制台打印 "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");
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....
编辑
当条件失败时,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....
do 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....
这是预条件循环 (while(condition) {...}
) 和 post 条件循环 (do{...}while(condition);
) 之间的区别。
主要区别在于 post 条件循环将 始终 运行 代码块 至少一次 在评估条件之前,而预条件循环将首先尝试在 运行 其代码块
之前评估条件在您的示例中,您忘记了 post 条件循环中的条件,因此它会永远循环。
参考文献:
这不是因为变量 doCondition。这是因为你正在写你的 do-while 错误。看看这个。
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
循环中没有初始 "do once" 步骤。把你想执行一次的代码放在循环之前:
var doWhileLoop = function(text){
var doCondition = 5;
console.log("do condition, once only");
do {
console.log(text);
doCondition--;
while (doCondition > 0);
};
doWhileLoop("do");