حلقه‌ها

حلقه ها در زندگی

تصور کنید که شما راننده هستید و هم اکنون پشت چراغ قرمز توقف کرده‌اید. مهم‌ترین کار شما در این لحظه چیست؟ این‌که حواستان به چراغ باشد و به محض این‌که سبز شد، حرکت کنید.

در این حالت شما در اصطلاح «گوش به زنگ» هستید. به محض این‌که شرط مورد نظر برقرار شد، کار تعیین شده را انجام می‌دهید.

تصوّر کنید در شرایط فوق هستید اما چراغ راهنمایی خراب شده‌است. چه می‌کنید؟ آیا تا ابد صبر می‌کنید؟ قطعاً خیر! شما می‌دانید که در این صورت می‌توانید به دستور پلیسی که آنجاست گوش کنید یا اینکه با احتیاط از چراغ عبور کنید.

۳ اصل زیر را هنگام رسیدن به چراغ راهنمایی دائماً از ذهن خود می‌گذرانید و معمولاً در حال چک کردن چراغ هستید:

۱) تاوقتی‌که چراغ قرمز است می‌ایستم

۲) به محض این‌که سبز شد، از چراغ عبور می‌کنم

۳) اگر چراغ خراب بود، با احتیاط از چهارراه عبور می‌کنم

 

حلقه ها در برنامه نویسی

در زبان‌های برنامه‌نویسی با رسیدن به حلقه‌های تکرار، شرط تعیین‌شده را بررسی می‌کند و تا زمانی که مقدار این شرط برابر با  True ارزیابی شود، کدهای داخل بدنه‌ی آن را به صورت مکرّر اجرا می‌کند که این دستور اصطلاحاً LOOP (حلقه) نامیده می‌شود چرا که دستورات داخل آن پشت‌سرهم اجرا می‌شوند و با پایان یافتن آن‌ها مجدداً به ابتدا برگشته و شرط پایان دادن به حلقه بررسی می‌شود که در صورت برقرار بودن آن، حلقه ادامه پیدا می‌کند و در غیر این صورت (False) جریان برنامه از حلقه خارج شده و سایر دستورات پس از آن اجرا می‌شوند.

Iteration( تکرار)

به تکرار اجرای گروهی از کدها در زبان‌های برنامه نویسی Iteration میگویند که پرکاربرد ترین آن ها همان حلقه‌ها هستند.

Iterative variable (متغیر تکرارشونده)

شئ (متغیری) که چندین مقدار را در خود دارد و می‌توان روی آن پیمایش انجام داد و به ازای هر عضو موجود در آن یک بار حلقه را اجرا کرد. آرایه‌ها و اشیاء از این گروه هستند که بعداً به آن‌‌ها خواهیم پرداخت.

انواع حلقه ها

به صورت کلی در پایتون دو نوع حلقه وجود دارد:

while = تا وقتی که …

for = برای هر …

برای یادگیری بهتر در ادامه این ترجمه‌ها را به خاطر داشته باشید.

While

برای اجرای یک سری دستورات به صورت تکرار شونده و به تعداد خاص،تا وقتی که شرط مورد نظر برقرار باشد به کار می رود.

تا وقتی‌که معلّم سر کلاس است، باید با اجازه حرف بزنید.

در ساختار حلقه‌ها همواره باید دستوری وجود داشته باشد که باعث عدم برقراری شرط حلقه و خاتمه‌ی آن برنامه‌شود. در غیر این صورت اصطلاحاً برنامه در حلقه میافتد و نمی‌تواند خارج شود (تا بی نهایت در حلقه گیر می‌کند )

به محض این‌که معلّم از کلاس خارج شد، می‌توانید با هم حرف بزنید. واقعاً که…!!

بدانید و آگاه باشید:

هشتگ یا # که به آن Number sign هم می‌گویند، در زبان پایتون برای نوشتن کامنت(شرح) استفاده می‌شود. کامنت‌ها در تمام زبان‌ها استفاده می‌شوند، امّا نوع نوشتن آن‌ها تفاوت دارد؛ مثلا در زبان C:  */ است. برخی اوقات نیاز است نکاتی را بنویسید که کامپیوتر آن را اجرا نکند و فقط برنامه نویس‌های دیگری که کدهای شما را می‌خوانند، آن را ببینند. این‌جا از کامنت استفاده می‌کنیم . این کار یکی از بهترین و مهم‌ترین ابزارها برای برنامه نویسی به صورت گروهی یا team working  است. همچنین open source نویسان از این امکان بسیار استفاده می‌نمایند.

مثال:

اگر بخواهید اعداد ۱ تا ۱۰ را پشت سر هم به کاربر نمایش دهید، چه کارهایی می‌توانید انجام دهید؟

با آن‌چه تا قبل از این درس آموخته بودید، اوّلین جواب این است که ۱۰ دستور پرینت پشت سر هم بنویسیم! که قطعاً کار پر زحمتی است! بجای آن می‌توانید ازحلقه استفاده کنید.

For

این حلقه مدلی ثابت با امکاناتی زیاد را جهت تکرار یک سری دستورات به تعدادی مشخص ارائه می‌دهد.
برای مثال امکان نمایش محتویات یک آرایه یا شئ (بعداً با آن‌ها آشنا می‌شویم) را به صورت زیرایجاد می کند:

برای نمایش رنگ‌های رنگین کمان:

می‌توان به جای آرایه یا اشیاء که هنوز نخوانده‌ایم، از تابع range استفاده نمود که برای تولید مقداری integer استفاده می‌شود.

مثال بالا به زبان آدمیزاد ?

به ازای متغیر i در محدوده ی 1 تا 10، به صورت یکی در میان آنها را چاپ کن .

در این توابع هر یک از مقادیر داخل پرانتز به ترتیب نشان دهنده ی:

Break

break به معنی شکستن است و از این دستور برای خروج از حلقه و قطع کردن اجرای آن استفاده می‌شود. در مثال روبرو وقتی شرط برقرار باشد به دستور break رسیده و از حلقه ی while خارج می شویم.

break در ذیل if آمده است، یعنی اگر if برقرار شد، آن‌گاه break اجرا می شود.

Continue

به معنی ادامه دادن است. از دستور Continue برای جلوگیری از اجرای یک دور حلقه استفاده می شود. هر گاه در یک حلقه به دستور continue برسیم، ادامه ی دستورات پس از آن اجرا نمی شود و حلقه به دور بعدی رفته و ادامه ی دور کنونی را اجرا نمی کند.