retour au cours

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.