هنر برنامه نویسی با پایتون ، بخش هفتم: حلقه ها

برنامه ساده چاپ اعداد طبیعی کوچکتر از 4 را در نظر بگیرید ساده ترین راه نوشتن این برنامه ، تکرار  دستور Print برای هر یک از اعداد 0 تا 4 است تا به ترتیب با چاپ اعداد 3 ، 2 ، 1 ، 0 خواسته برنامه نویس برآورده گردد. اما اگر بخواهید برنامه چاپ اعداد طبیعی کوچکتر از 50 را به شیوه گفته شده بنویسید ، به ناچار باید برای چاپ هر یک از اعداد 0 تا 49 یک دستور  print() جداگانه بنویسید. و ناگفته پیداست که پنجاه بار تکرار دستور print  روشی غیر منطقی است چراکه این سبک از برنامه نویسی حجم برنامه را بی دلیل  افزایش داده و با کاهش خوانایی و سخت تر شدن درک کد ، ویرایش و اصلاح کد در آینده را دشوار می سازد. این دو مثال ساده نیاز به وجود سازوکاری برای برنامه نویسی ساده تر و روان تر کدهایی که باید بارها و بارها اجرا شوند را روشن می سازد.

 ضرورت وجود این سازوکار دوچندان می شود اگر بدانیم که در بسیاری از الگوریتم های حل مسائل دنیای واقعی نیاز به تکرار و اجرای چندباره کد ، گریزناپذیر است .یک مثال عملی از نیاز به تکرار کد ، محاسبه حقوق و دستمزد کارکنان است. چراکه نرم افزار ناچار به تکرار پردازش محاسبه حقوق و دستمزد برای هر یک از کارکنان به صورت جداگانه است. بنابراین با فرض اینکه تعداد کارکنان یک شرکت فرضی 2500 نفر باشد.  نرم افزار مجبور است اجرای سه قطعه کد : واکشی اطلاعات کارمند از فایل ورودی ، محاسبه حقوق و دستمزد و ذخیره نتیجه محاسبه در فایل خروجی را از اولین کارمند شروع و تا رسیدن به آخرین کارمند ادامه دهد. یعنی اجرای سه قطعه کد گفته شده 2500 بار تکرار می شود. این مثال نمونه ای از یک تکرار پایان پذیر است زیرا تکرار اجرای کد پس از تعداد اجرای مشخص و یا برقراری یک شرط پایان می پذیرد . در فرهنگ واژگان زبان های برنامه نویسی به تکرار ، حلقه (loop) گفته می شود.  مفهوم حلقه پایان پذیر در محاسبه حقوق و دستمزد کارکنان در تصویر زیر نمایش داده شده است : 

ادامه مطلب ...