2 回答

TA貢獻1831條經(jīng)驗 獲得超9個贊
while 循環(huán)僅在條件為 true 時運行,但它將從 for 循環(huán)的每個周期至少檢查一次。如果您希望它每次都運行,則可以將其更改為 do while 循環(huán)。我不完全確定你想完成什么,但你絕對可以在for循環(huán)中放置一個while循環(huán)。
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;
}
}
}
當(dāng)執(zhí)行時,這將為您提供一個示例 -
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 循環(huán)將運行 for 循環(huán)的每個周期 - 假設(shè)它的條件為 true。如果條件在第一個 while 循環(huán)中變?yōu)?false,但再也不會變?yōu)?true,則在 for 循環(huán)的所有未來周期中,將跳過 while 循環(huán)。
例如,如果我們稍微更改代碼.
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;
}
}
在本例中,我們?yōu)?while 循環(huán)設(shè)置了一次條件,但從未將其更改回默認(rèn)值?,F(xiàn)在我們得到...
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條經(jīng)驗 獲得超6個贊
您可以使用這兩個循環(huán),它們的行為可能與預(yù)期不同。
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
添加回答
舉報