tilbage til lektionen

En lejlighedsvist uendeligt løkke

vigtighed: 4

Denne løkke er uendelig. Den slutter aldrig. Hvorfor?

let i = 0;
while (i != 10) {
  i += 0.2;
}

Det er fordi i aldrig ville være præcis 10.

Kør det for at se de rigtige værdier af i:

let i = 0;
while (i < 11) {
  i += 0.2;
  if (i > 9.8 && i < 10.2) alert( i );
}

Ingen af dem er præcis 10.

Sådanne ting sker på grund af præcisionstab, når man lægger brøker som 0.2 sammen.

Konklusion: undgå lighedschecks, når du arbejder med decimale brøker.