کلمه جو
صفحه اصلی

خطای off by one

دانشنامه عمومی

خطای Off-by-one یک خطای منطقی می باشد که مربوط به کرانه اجرای شرط در برنامه نوشته شده (با هر زبان برنامه نویسی) می باشد. این خطا را به این صورت نیز توصیف می کنند:
https://en.wikipedia.org/wiki/Off-by-one_error
An earlier version of this article was based on fencepost error at FOLDOC, used with permission.
"that extra inch you didn't really want" یعنی آن مقدار اضافی که اجرا شده ولی مد نظر تو نبود. برای درک بهتر این خطا حالت زیر را در نظر بگیرید:
برنامه نویسی می خواهد یک حلقه را بنویسید که ۵ بار اجرا شود. فرض کنید شروع حلقه حالت n و پایان آن m است و برنامه نویس چنان فرض می کند که میزان شمارش این حلقه به این صورت است: m-n که اگر n را برابر صفر و m را برابر ۴ در نظر بگیریم، طبق فرض برنامه نویس این حلقه ۴=۰–۴ بار اجرا می شود و حلقه آن به این صورت نوشته شده است:
for (i=0;i<=4;i++)}-----{ ولی با کمی دقت می توان فهمید که این حلقه ۵ بار اجرا می شود نه ۴ بار و مشکل محاسبات منطقی برنامه نویس بود چون تعداد بار اجرای حلقه به صورت m-n+1 حساب می شود. این خطای منطقی که در برنامه رخ داده Off-by-one نامیده می شود و در مراحل بعدی برنامه می تواند محاسبات را بهم زده و نتیجه برنامه را به کلی تغییر دهد (خروجی خارج از انتظار برنامه نویس باشد).


کلمات دیگر: