Derse geri dön

Infinite loop

önem: 4

Aşağıdaki döngü neden sonsuzdur ve hiç bir zaman bitmez? s

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

Çünkü i hiç bir zaman 10 olmaz.

Aşağıdaki kodu çalıştırın ve gerçek i değerini görün:

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

Hiç birisi tam olarak 10 olmayacaktır.

Bunun olmasının nedeni 0.2 eklediğimizde kesinlik kaybı olur.

Sonuç: Eğer ondalıklı sayılar ise çalışıyorsanız eşitlik kontrolünü iyice kontrol edin.