2 回答
TA贡献1831条经验 获得超9个赞
while 循环仅在条件为 true 时运行,但它将从 for 循环的每个周期至少检查一次。如果您希望它每次都运行,则可以将其更改为 do while 循环。我不完全确定你想完成什么,但你绝对可以在for循环中放置一个while循环。
for(let i = 0; i < 5; i++){
console.log('Starting a cycle');
let bool = true;
let value = 0;
while(bool){
console.log('While loop');
if(value === 3){
bool = false;
} else {
value += 1;
}
}
}
当执行时,这将为您提供一个示例 -
Starting a cycle
While loop
While loop
While loop
While loop
Starting a cycle
While loop
While loop
While loop
While loop
Starting a cycle
While loop
While loop
While loop
While loop
Starting a cycle
While loop
While loop
While loop
While loop
Starting a cycle
While loop
While loop
While loop
While loop
因此,如您所见,while 循环将运行 for 循环的每个周期 - 假设它的条件为 true。如果条件在第一个 while 循环中变为 false,但再也不会变为 true,则在 for 循环的所有未来周期中,将跳过 while 循环。
例如,如果我们稍微更改代码.
let bool = true;
for(let i = 0; i < 5; i++){
console.log('Starting a cycle');
let value = 0;
while(bool){
console.log('While loop');
if(value === 3){
bool = false;
} else {
value += 1;
}
}
在本例中,我们为 while 循环设置了一次条件,但从未将其更改回默认值。现在我们得到...
Starting a cycle
While loop
While loop
While loop
While loop
Starting a cycle
Starting a cycle
Starting a cycle
Starting a cycle
TA贡献1797条经验 获得超6个赞
您可以使用这两个循环,它们的行为可能与预期不同。
function forWhileLoop(){
for (let i=0; i < data.length; i++){
loop = true
console.log(`processing: ${i}`)
while (loop == true){
console.log(`loop is ${loop}`)
loop = false
console.log(`loop is ${loop}`)
}
}
console.log('all done')
}
forWhileLoop()
// Results in
processing: 0
loop is true
loop is false
processing: 1
loop is true
loop is false
processing: 2
loop is true
loop is false
processing: 3
loop is true
loop is false
processing: 4
loop is true
loop is false
processing: 5
loop is true
loop is false
processing: 6
loop is true
loop is false
processing: 7
loop is true
loop is false
processing: 8
loop is true
loop is false
processing: 9
loop is true
loop is false
all done
https://repl.it/repls/EnormousNegligibleTechnology
添加回答
举报