まれな無限ループ
重要度: 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進小数を使用する場合、等価性のチェックは避けてください。