یک حلقهی بینهایت
اهمیت: 4
این حلقه بینهایت است. هیچوقت تمام نمیشود. چرا؟
let i = 0;
while (i != 10) {
i += 0.2;
}
به این علت است که i
هیچوقت برابر ده نمیشود.
این تکه کد را اجرا کنید تا مقدار حقیقی i
را ببینید:
let i = 0;
while (i < 11) {
i += 0.2;
if (i > 9.8 && i < 10.2) alert( i );
}
هیچکدام از آنها دقیقا ده نیست.
چنین اتفاقاتی به علت از دست رفتن دقت در حین جمع کردن کسرهایی مثل 0.2
رخ میدهد.
نتیجه: وقتی با کسرهای اعشاری کار میکنید، از تساوی استفاده نکنید.