جاوا اسکریپت – کنترل حلقه

جاوااسکریپت کنترل کاملی را برای مدیریت حلقه‌ها و عبارات switch فراهم می‌کند. ممکن است در برخی موارد نیاز داشته باشید که از یک حلقه خارج شوید بدون اینکه به آخر آن برسید. همچنین ممکن است در برخی موارد بخواهید قسمتی از بلوک کد خود را بگذرانید و بازگشتی از حلقه را شروع کنید.

برای مدیریت همه‌ی این موارد، جاوااسکریپت دستورات break و continue را فراهم می‌کند. این دستورات برای به‌صورت فوری از هر حلقه خارج شدن یا آغاز بعدی اجرای هر حلقه به‌ترتیب استفاده می‌شوند.

دستور break

دستور break که به طور خلاصه با عبارت switch معرفی شد، برای خروج زودتر از یک حلقه استفاده می‌شود.

نمودار

نمودار جریان یک دستور break به صورت زیر خواهد بود:

مثال

مثال زیر استفاده از دستور break را در یک حلقه while نشان می‌دهد. توجه کنید که حلقه به‌صورت زودتر از آن که x به عدد 5 برسد، متوقف می‌شود:
<html>
   <body>     
      <script type = "text/javascript">
         <!--
         var x = 1;
         document.write("وارد شدن به حلقه<br /> ");
         
         while (x < 20) {
            if (x == 5) {
               break;   //اجرای دستور برای خارج شدن از حلقه
            }
            x = x + 1;
            document.write( x + "<br />");
         }         
         document.write("خارج شدن از حلقه!<br /> ");
         //-->
      </script>
      
      <p>متغیر را به مقدار مختلف تنظیم کنید و سپس امتحان کنید...</p>
   </body>
</html>
خروجی:
وارد شدن به حلقه
2
3
4
5
خارج شدن از حلقه!
متغیر را به مقدار مختلف تنظیم کنید و سپس امتحان کنید...
ما قبلاً استفاده از دستور break درون یک عبارت switch را دیده‌ایم.

دستور continue

دستور continue به اجرا کننده می‌گوید که فوراً شروع به اجرای گردش حلقه بعدی کند و بقیه بلوک کد را بگذراند. وقتی دستور continue برخورد می‌شود، جریان برنامه فوراً به عبارت بررسی حلقه منتقل می‌شود و اگر شرط هنوز درست باقی بماند، از حلقه بعدی شروع می‌شود، در غیر این صورت از حلقه خارج می‌شود.

مثال

این مثال استفاده از دستور continue را با یک حلقه while نشان می‌دهد. توجه کنید که چگونه دستور continue برای پرش از چاپ کردن زمانی که شاخص نگهداری شده در متغیر x به 5 می‌رسد استفاده شده است:
<html>
   <body>      
      <script type = "text/javascript">
         <!--
            var x = 1;
            document.write("ورود به حلقه<br /> ");
         
            while (x < 10) {
               x = x + 1;
               
               if (x == 5) {
                  continue;   // از بقیه بدنه حلقه بگذر
               }
               document.write( x + "<br />");
            }         
            document.write("خروج از حلقه!<br /> ");
         //-->
      </script>      
      <p>متغیر را به مقدار مختلف تنظیم کنید و سپس امتحان کنید...</p>
   </body>
</html>
خروجی:
ورود به حلقه

2
3
4
6
7
8
9
10
خروج از حلقه!
متغیر را به مقدار مختلف تنظیم کنید و سپس امتحان کنید...

استفاده از برچسب‌ها

از نسخه‌ی جاوااسکریپت 1.2 به بعد، می‌توان از برچسب‌ها به همراه دستورات break و continue استفاده کرد تا جریان را با دقت بیشتر کنترل کنیم. یک برچسب به طور ساده یک شناسه است که به آن یک نقطه‌ویرگول (:) دنبال می‌شود و به یک عبارت یا بلوک کد اعمال می‌شود. ما دو مثال متفاوت را خواهیم دید تا درک بهتری از استفاده از برچسب‌ها با break و continue داشته باشیم.

توجه − شکست خطوط بین دستور ‘continue’ یا ‘break’ و نام برچسب مجاز نیست. همچنین، هیچ عبارت دیگری بین نام برچسب و حلقه مرتبط وجود نداشته باشد.

برای درک بهتر برچسب‌ها، دو مثال زیر را امتحان کنید:

مثال 1

مثال زیر نشان می‌دهد چگونه برچسب را با دستور break پیاده‌سازی کنید:
<html>
   <body>      
      <script type = "text/javascript">
         <!--
            document.write("Entering the loop!<br /> ");
            outerloop:        // این نام برچسب است         
            for (var i = 0; i < 5; i++) {
               document.write("Outerloop: " + i + "<br />");
               innerloop:
               for (var j = 0; j < 5; j++) {
                  if (j > 3 ) break ;           // خروج از حلقه‌ی داخلی به‌طور کامل
                  if (i == 2) break innerloop;  // همان کار را انجام بده
                  if (i == 4) break outerloop;  // خروج از حلقه‌ی بیرونی
                  document.write("Innerloop: " + j + " <br />");
               }
            }        
            document.write("Exiting the loop!<br /> ");
         //-->
      </script>      
   </body>
</html>
خروجی:
Entering the loop!

Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 2
Outerloop: 3
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Outerloop: 4
Exiting the loop!

مثال 2

<html>
   <body>
   
      <script type = "text/javascript">
         <!--
         document.write("Entering the loop!<br /> ");
         outerloop:     // این نام برچسب است
         
         for (var i = 0; i < 3; i++) {
            document.write("Outerloop: " + i + "<br />");
            for (var j = 0; j < 5; j++) {
               if (j == 3) {
                  continue outerloop;
               }
               document.write("Innerloop: " + j + "<br />");
            }
         }
         
         document.write("Exiting the loop!<br /> ");
         //-->
      </script>
      
   </body>
</html>
خروجی:
Entering the loop!

Outerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Outerloop: 2
Innerloop: 0
Innerloop: 1
Innerloop: 2
Exiting the loop!

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.