我正在学习JavaScript。 我刚刚学会了while 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
但不幸的是,我的浏览器进入了无限循环。 我不知道为什么这个循环是无限的。请帮我。
答案 0 :(得分:1)
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++;
}
也许这样你可以看到原因
&#34;问题&#34; 是解释器会将while
视为do
答案 1 :(得分:1)
有效地你写了:
i
变量do {
console.log ("do once");
i++;
} while (i<8);
永远不会递增并导致无限循环(因为该值始终小于8)。
要解决此问题,您可以在循环中增加变量。
do while
http://jsfiddle.net/uby3nfoy/1/
您可能会在两种不同类型的循环之间产生混淆。 while
和{{1}}。
答案 2 :(得分:1)
&#34; do / while循环是while循环的变体。这个循环将执行代码块一次,然后检查条件是否为真,然后只要条件为真,它就会重复循环。&#34;
当代码到达Do / While循环时,i = 5。所以代码将重复&#34; console.log(&#34;做一次&#34;);&#34;直到i大于8.结果,它进入无限循环。
答案 3 :(得分:0)
您需要确保循环内的增量。见这个例子。
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()将在循环之前检查该子句。它们略有不同。
答案 4 :(得分:0)
在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);
希望有所帮助