بایگانی برچسب‌ها : Endless Loop

حلقه بی نهایت Infinite Loop

حلقه بی نهایت یا Infinite Loop چیست؟

حلقه بی نهایت (Infinite Loop) یا حلقه بی پایان (Endless Loop) به گونه‌ای از حلقه ها گفته می‌شود که در آن مجموعه‌ای از دستورات به صورت نامتناهی تکرار می‌شوند. به عبارت بهتر دستوراتی که در بدنه این نوع حلقه قرار می‌گیرد تا زمانی که برنامه در حال اجراست تکرار می‌شود.

نحوه شکل گیری حلقه های بی نهایت

یک حلقه بدون پایان می‌تواند در اثر عوامل مختلفی نظیر وجود شرطی که هرگز حلقه را به پایان نمی‌رساند و یا وجود دستوراتی که مانع از به پایان رسیدن حلقه می‌شوند شکل بگیرد. در واقع حلقه های بی نهایت الزاما نوعی حلقه مجزا با یک کلمه کلیدی از پیش رزرو شده متمایز در زبان‌های برنامه نویسی نیست؛ بلکه هر حلقه یا ساختار جریان کنترلی که منجربه تکرار دستورات به تعداد نامتناهی شود یک حلقه بی نهایت را تشکیل می‌دهد. این ساختار می‌تواند شامل هرچیزی اعم از یک حلقه معمولی و یا استفاده از دستور GOTO برای ایجاد یک حلقه بی‌پایان باشد.

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

جالب است بدانید حلقه های بی نهایت ممکن است باعث هنگ کردن و فریز سیستم شوند. اما در صورتی که سیستم همچنان به واکنش‌های کاربر پاسخگو باشد معمولا می‌توان حلقه های بدون پایان ناخواسته را با روشی مثل استفاده از Task Manager و پایان دادن به فرایند مربوطه متوقف نمود.

به عنوان نمونه هایی از حلقه های بدون پایان از نوع While می‌توان به دو قطعه کد ساده زیر که به زبان برنامه نویسی جاوا نوشته شده‌اند اشاره کرد. نتیجه ارزیابی شرط در این حلقه ها همواره صحیح (true) باقی می‌ماند و دستورات بدنه تا زمانی که اجرای برنامه متوقف نشود تکرار می‌شوند. در مثال سمت چپ، متغیر y همواره برابر با عدد 1 باقی می‌ماند و در نتیجه شرط y < 20 همواره صحیح خواهد بود. در مثال سمت راست (که یکی از رایج‌ترین روش‌های ایجاد حلقه بی پایان می‌باشد) حاصل ارزیابی متغیر b همواره صحیح (true) بوده و تنها دستور بدنه حلقه به طور مداوم تکرار می‌شود.

حلقه بی نهایت Infinite Loop
دو نمونه حلقه بی نهایت از نوع While. در این دو مثال متغیر y و b هیچگاه تغییری نمی‌کنند و شرط همواره برقرار می‌ماند.

پیوندهای پیشنهادی تک دیک

صفحه واژه در ویکیپدیا