Une boucle infinie
importance: 4
Cette boucle est infinie. Ça ne finit jamais. Pourquoi ?
let i = 0;
while (i != 10) {
i += 0.2;
}
C’est parce que i
ne sera jamais exactement égal à 10.
Exécutez-le pour voir les valeurs réelles de i :
let i = 0;
while (i < 11) {
i += 0.2;
if (i > 9.8 && i < 10.2) alert( i );
}
Aucun d’entre eux n’est exactement 10
.
De telles choses se produisent à cause des pertes de précision lors de l’ajout des fractions comme 0.2
.
Conclusion : évitez les contrôles d’égalité lorsque vous travaillez avec des fractions décimales.