好的,首先,我对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");