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