レッスンに戻る

まれな無限ループ

重要度: 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などの分数を加算すると、このようなことが起こります。

結論: 10進小数を使用する場合、等価性のチェックは避けてください。