偶發的無限迴圈
重要性:4
這個迴圈是無限的。它永遠不會結束。為什麼?
let i = 0;
while (i != 10) {
i += 0.2;
}
那是因為 i
永遠不會等於 10
。
執行它以查看i
的實際值
let i = 0;
while (i < 11) {
i += 0.2;
if (i > 9.8 && i < 10.2) alert( i );
}
它們沒有一個等於10
。
這種情況會發生,因為在加小數,例如0.2
時,會產生精確度損失。
結論:使用小數時,請避免使用相等性檢查。