我的 do while 循环陷入无限循环
My do while loop gets stuck in an infinite loop
我正在学习 JavaScript。
我刚刚学习了 do while 循环并尝试做一些例子。
这是我的代码:
for (i=0; i<5; i++) {
console.log ("for loops " + i);
}
do {
console.log ("do once");
} while (i<8) {
console.log ("while loops " + i);
i++;
}
我预料到下面的结果。
for loops 0
for loops 1
for loops 2
for loops 3
for loops 4
do once
while loops 5
while loops 6
while loops 7
但是,不幸的是,我的浏览器进入了无限循环。
为什么这个循环是无限的?
for (i=0; i<5; i++) {
console.log ("for loops " + i);
}
do {
console.log ("do once");
} while (i<8)
{
console.log ("while loops " + i);
i++;
}
也许这样你可以看出原因
"problem"是解释器将while
视为do
的一部分
实际上你已经写了:
do {
console.log ("do once");
} while (i<8)
变量 i
永远不会递增并导致无限循环(因为值总是小于 8)。
要解决此问题,您可以在循环内递增变量。
do {
console.log ("do once");
i++;
} while (i<8);
http://jsfiddle.net/uby3nfoy/1/
您可能对两种不同类型的循环感到困惑。 do while
和 while
。
您需要确保在循环内递增。请参阅此示例。
for (i=0; i<5; i++) {
console.log ("for loops " + i);
}
console.log ("do once");
do {
console.log ("while loops " + i);
i++;
} while (i<8);
您正在尝试增加一些永远不会执行的代码。您似乎混淆了 do...while() 循环和 while() 循环。
do...while() 将在检查 while 子句之前执行一次,而 while() 将在循环之前检查该子句。它们略有不同。
在 JavaScript 中,do-while 循环具有以下语法:
do{
commands();
} while (logical statement);
所以你写道:
do {
console.log ("do once");
// missing increment
} while (i<8);
{ // these { } are not part of any loop, but just a scope block
console.log ("while loops " + i);
i++;
}
浏览器陷入无限循环,因为变量 i 没有在 while 循环内递增。您应该尝试以下操作:
for (i=0; i<5; i++) {
console.log ("for loops " + i);
}
console.log ("do once");
do {
console.log ("while loops " + i);
i++;
} while (i<8);
希望对您有所帮助
"The do/while loop is a variant of the while loop. This loop will execute the code block once, before checking if the condition is true, then it will repeat the loop as long as the condition is true."
i=5 当代码到达 Do/While 循环时。所以代码会重复"console.log ("做一次");"直到i大于8,结果进入死循环
我正在学习 JavaScript。 我刚刚学习了 do while 循环并尝试做一些例子。
这是我的代码:
for (i=0; i<5; i++) {
console.log ("for loops " + i);
}
do {
console.log ("do once");
} while (i<8) {
console.log ("while loops " + i);
i++;
}
我预料到下面的结果。
for loops 0
for loops 1
for loops 2
for loops 3
for loops 4
do once
while loops 5
while loops 6
while loops 7
但是,不幸的是,我的浏览器进入了无限循环。 为什么这个循环是无限的?
for (i=0; i<5; i++) {
console.log ("for loops " + i);
}
do {
console.log ("do once");
} while (i<8)
{
console.log ("while loops " + i);
i++;
}
也许这样你可以看出原因
"problem"是解释器将while
视为do
实际上你已经写了:
do {
console.log ("do once");
} while (i<8)
变量 i
永远不会递增并导致无限循环(因为值总是小于 8)。
要解决此问题,您可以在循环内递增变量。
do {
console.log ("do once");
i++;
} while (i<8);
http://jsfiddle.net/uby3nfoy/1/
您可能对两种不同类型的循环感到困惑。 do while
和 while
。
您需要确保在循环内递增。请参阅此示例。
for (i=0; i<5; i++) {
console.log ("for loops " + i);
}
console.log ("do once");
do {
console.log ("while loops " + i);
i++;
} while (i<8);
您正在尝试增加一些永远不会执行的代码。您似乎混淆了 do...while() 循环和 while() 循环。
do...while() 将在检查 while 子句之前执行一次,而 while() 将在循环之前检查该子句。它们略有不同。
在 JavaScript 中,do-while 循环具有以下语法:
do{
commands();
} while (logical statement);
所以你写道:
do {
console.log ("do once");
// missing increment
} while (i<8);
{ // these { } are not part of any loop, but just a scope block
console.log ("while loops " + i);
i++;
}
浏览器陷入无限循环,因为变量 i 没有在 while 循环内递增。您应该尝试以下操作:
for (i=0; i<5; i++) {
console.log ("for loops " + i);
}
console.log ("do once");
do {
console.log ("while loops " + i);
i++;
} while (i<8);
希望对您有所帮助
"The do/while loop is a variant of the while loop. This loop will execute the code block once, before checking if the condition is true, then it will repeat the loop as long as the condition is true."
i=5 当代码到达 Do/While 循环时。所以代码会重复"console.log ("做一次");"直到i大于8,结果进入死循环