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

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

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

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

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

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

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

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

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

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

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

امیرحسین شهسواری

عاشق دنیای رایانه و فناوری به خصوص برنامه نویسی هستم؛ یادگرفتن و البته یاد دادن چیزای جالبی که یاد گرفتم باعث خوشحالیم میشه و از اولویت‌های اصلی زندگیم به حساب میاد. از مدیریت و نوشتن در تک دیک هم واقعا لذت می‌برم :)

8 thoughts on “حلقه بی نهایت Infinite Loop

  • شهریور ۱۶, ۱۴۰۱ در t ۳:۰۰ ب٫ظ
    Permalink

    سلام
    در vba کدهامو نوشتم و یخوام بزنم اجرا بشه و یادم رفته که save کنم
    run میگیرم متوجه میشم تو لوپ بینهایتم چیکار میشه کرد که بدون بستن برنامه از اجرای حلقه جلوگیری کنم تو اون لحظه؟
    راه حلی داره یا محکوم به دوباره کدنویسی هستیم؟

    پاسخ دادن
    • شهریور ۱۶, ۱۴۰۱ در t ۳:۴۸ ب٫ظ
      Permalink

      سلام؛ اگر از ویژوال استودیو استفاده می کنید هنگام دیباگینگ، با کمک گزینه Stop Debugging اجرای برنامه رو متوقف کنید. بعد هم می تونید به شکل عادی کدتون رو اصلاح کنید.

      پاسخ دادن
  • بهمن ۳, ۱۳۹۹ در t ۱:۳۵ ق٫ظ
    Permalink

    چجوری از حلقه ی بینهایت دربیاییییییییم؟؟؟؟

    پاسخ دادن
    • بهمن ۳, ۱۳۹۹ در t ۳:۰۷ ب٫ظ
      Permalink

      سلام بسته به زبان های مختلف ممکن هست از دستورات متفاوتی برای خروج از حلقه ها استفاده بشه. در حلقه های بی نهایت هم می تونید از همین دستورات برای خروج از حلقه استفاده کنید. در اغلب زبان‌ها مانند جاوا از دستور break برای این منظور استفاده می شه. اینجا رو بخونید:
      https://techdic.ir/definition/loop

      پاسخ دادن
  • آذر ۵, ۱۳۹۸ در t ۵:۰۳ ب٫ظ
    Permalink

    ساخت یک لوپ بی‌نهایت از آب خوردنم آسون‌تره که…
    بیاین تمرین بدید؛ حل کنیم، یاد بگیریم!! پیشرفته!!
    من طرفدار زبان برنامه‌نویسی پایتان(Python) هستم و به نظرم زبان بهترین زبان دنیاست. غیر پای چیز دیگه ای یاد ندارم. البته جاوااسکریپ رو هم تا حدودی کار کردم. از زبانهایی که باید کامپلایل کرد بدم میاد.

    پاسخ دادن
    • آذر ۵, ۱۳۹۸ در t ۵:۱۵ ب٫ظ
      Permalink

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

      پاسخ دادن
  • آبان ۲۰, ۱۳۹۸ در t ۹:۵۲ ب٫ظ
    Permalink

    سلام من دانشجو ی ترم یک (ترمک ?) کامپیوتر ام همش با خودم فکر میکردم چ طور میشه حلقه ی بی پایان ساخت تا اینکه بلاخره تو سایت شما دیدم مرسی بابت مطلب مفیدتون

    پاسخ دادن
    • آبان ۲۰, ۱۳۹۸ در t ۱۰:۵۴ ب٫ظ
      Permalink

      سلام؛
      با آرزوی موفقیت برای شما

      پاسخ دادن

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *