返回課程

偶發的無限迴圈

重要性: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時,會產生精確度損失。

結論:使用小數時,請避免使用相等性檢查。