今天進入迴圈的第二天,該來聊聊 while
了!
與 for
的明確執行次數相比,while
是只要條件符合要求就會一直重複執行迴圈,直到條件出現不符合的情況時才會跳出迴圈,所以在運用 while
時,需要特別注意避免無窮迴圈的情形發生,拿昨天 for
數字輸出1-10的例子來說明:
// 請注意,這是個錯誤示範
let x = 1
while (x <= 10) {
console.log(`輸出: ${x}`)
}
將錯誤的程式碼分解來看:
由於x永遠等於1,也永遠符合條件,此時程式會無止盡的重複執行...當程式陷入無窮循環可能會伴隨當機、需要重開機才能跳脫等可怕的狀況,所以在撰寫程式碼時一定要小心不要落入無窮迴圈的情況。
而這個例子正確的程式碼應該是這樣:
let x = 1
while (x <= 10) {
console.log(`輸出: ${x}`)
x++ // 多加這行,讓x每次進入迴圈輸出完+1
}
因為每次迴圈x都會進行+1的動作,所以當x大於10的時候,便不符合條件也就不會再一直重複進入迴圈了。
當遇到必須一定要脫離迴圈的情況時,可以使用break
來強制跳脫迴圈,假如希望在x等於5就停止不再進行迴圈時:
let x = 1
while (x <= 10) {
console.log(`輸出: ${x}`)
if (x === 5) {
break
}
x++
}
從這段程式碼中會發現x並不會像前面一樣一直到大於10才停下,程式會在x等於5的時候就跳出迴圈不再繼續進行。