Випадковий безкінечний цикл
важливість: 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.
Висновок: уникайте порівняннь при роботі з десятковими дробами.