حلقه و تکرار: اجرای چندبارهٔ یک بخش از برنامه
انواع حلقه بر اساس شرط
در برنامهنویسی، دو نوع اصلی حلقه بر اساس نحوهٔ برسی شرط وجود دارد. در نوع نخست، ابتدا شرط بررسی میشود و اگر درست باشد، دستورهای داخل حلقه اجرا میشوند. این کار آنقدر تکرار میشود تا شرط نادرست شود. در نوع دوم، ابتدا یک بار دستورها اجرا میشوند و سپس شرط بررسی میگردد؛ بنابراین دستورها حداقل یک بار اجرا خواهند شد، حتی اگر شرط از ابتدا نادرست باشد. تفاوت این دو نوع حلقه در زمان بررسی شرط است که میتواند در نتیجهٔ نهایی برنامه تأثیرگذار باشد.
برای درک بهتر، به قانون «تا وقتی که باران میبارد، چتر خود را باز نگه دار» فکر کنید. در اینجا شرط «باریدن باران» است. تا زمانی که این شرط برقرار است، عمل «باز نگه داشتن چتر» تکرار میشود. به محض اینکه باران بند آید، شرط نادرست شده و حلقه پایان مییابد.
| نوع حلقه | زمان بررسی شرط | حداقل تعداد اجرا |
|---|---|---|
| حلقه با شرط ابتدایی | پیش از اجرای دستورها | صفر |
| حلقه با شرط انتهایی | پس از اجرای دستورها | یک |
کاربرد حلقه در زندگی روزمرهٔ دانشآموز
فرض کنید میخواهید تکالیف شب خود را انجام دهید. شما یک لیست از درسها دارید. تا وقتی که تمام درسها را نخواندهاید، به سراغ درس بعدی میروید. این یک حلقه است: «تا زمانی که لیست تمام نشده، درس بعدی را بخوان». یا هنگامی که در حال پاک کردن تختهکلاس هستید، تا وقتی که تخته کاملاً پاک نشده، به پاک کردن ادامه میدهید. در بازیهای رایانهای نیز، تا وقتی که جانهای بازیکن تمام نشده، بازی ادامه پیدا میکند. همهٔ این نمونهها نشان میدهند که حلقهها چگونه به ما کمک میکنند تا کارهای تکراری را به صورت خودکار و بدون اشتباه انجام دهیم.
یکی از مثالهای جذاب، شمارش معکوس برای شروع یک مسابقه است. برنامه باید اعداد از ۱۰ تا ۱ را نمایش دهد و سپس بگوید «شروع». این کار با یک حلقه به راحتی انجام میشود: تا وقتی که شمارنده به صفر نرسیده، عدد را نمایش بده و شمارنده را یکی کم کن.
چالشهای مفهومی در حلقهها
پرسش ۱: اگر شرط یک حلقه از ابتدا نادرست باشد، چه اتفاقی میافتد؟
پاسخ: در حلقهای که شرط ابتدایی دارد، اگر شرط نادرست باشد، دستورهای داخل حلقه اصلاً اجرا نمیشوند و برنامه از بخش بعد از حلقه ادامه پیدا میکند. اما در حلقه با شرط انتهایی، دستورها یک بار اجرا میشوند و سپس شرط بررسی میگردد.
پرسش ۲: چگونه میتوان از اجرای بینهایت یک حلقه جلوگیری کرد؟
پاسخ: باید مطمئن شوید که در داخل حلقه، تغییری ایجاد میشود که سرانجام شرط را نادرست کند. مثلاً اگر شرط «شمارنده کوچکتر از ۱۰ باشد» است، باید در هر بار اجرا، مقدار شمارنده را افزایش دهید تا به ۱۰ برسد و شرط نادرست شود.
پرسش ۳: آیا میتوان داخل یک حلقه از حلقهٔ دیگری استفاده کرد؟
پاسخ: بله، به این حالت «حلقههای تو در تو» میگویند. مانند ساعت دیجیتالی که برای نمایش ثانیه، دقیقه و ساعت از سه حلقهٔ تو در تو استفاده میشود. البته باید دقت کنید که تعداد تکرارها از کنترل خارج نشود.
نکتهٔ پایانی: حلقهها یکی از ابزارهای قدرتمند در برنامهنویسی هستند که به ما امکان میدهند کارهای تکراری را به سادگی مدیریت کنیم. با درک صحیح از شرط و نحوهٔ پایانیابی، میتوانید از خطاهای رایج مانند حلقههای بینهایت جلوگیری کنید. به یاد داشته باشید که هر حلقه به یک «شرط خاتمه» نیاز دارد تا پس از مدتی متوقف شود. این مفهوم نه تنها در برنامهنویسی، بلکه در بسیاری از فعالیتهای روزمره نیز کاربرد دارد.
یادآوری همیشه پیش از نوشتن یک حلقه، به این فکر کنید که شرط پایان آن چیست و آیا در داخل حلقه، تغییری ایجاد میشود که به آن شرط برسید.