الرجوع الي الدرس

حلقة غير منتهية أحيانًا

الحلقة التالية غير منتهية، ولا تتوقف أبدًا. لماذا؟

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. الخلاصة، تجنب التحقق من المساواة عند التعامل مع الأجزاء العشرية.