آموزش جاوا اسکریپت

آموزش جاوا اسکریپت - کنترل حلقه

جاوا اسکریپت کنترل کاملی برای مدیریت حلقه ها و دستورات switch را فراهم می کند. ممکن است موقعیتی وجود داشته باشد  که شما نیاز به بیرون آمدن از حلقه دارید. همچنین ممکن است بخواهید بخشی از کد بلوک را skip (عدم خواندن کد  ) کرده و تکرار بعدی حلقه را آغاز کنید.

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

دستور break

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

فلوچارت

فلوچارت زیر نحوه عملکرد دستور break در جاوا اسکریپت را نشان می دهد.

break statement

مثال

مثال زیر نحوه استفاده از دستور break در یک حلقۀ while را نشان می دهد. به break حلقه در زمانی که x برابر با 5 می شود و دستور document.write (..) که در پایین براکت بسته { قرار دارد، دقت کنید.

<html>
   <body>
      
      <script type="text/javascript">
         <!--
         var x = 1;
         document.write("Entering the loop<br /> ");
         
         while (x < 20)
         {
            if (x == 5){
               break; // breaks out of loop completely
            }
            x = x + 1;
            document.write( x + "<br />");
         }
         
         document.write("Exiting the loop!<br /> ");
         //-->
      </script>
      
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

خروجی

Entering the loop
2
3
4
5
Exiting the loop!
Set the variable to different value and then try...

 

دستور continue

دستور continue به interpreter می گوید تا بلافاصله تکرار بعدی حلقه را شروع کرده و بلوک کد باقی مانده را از بین ببرد. زمانی که با دستور continue مواجه شد، جریان برنامه سریعا به  loop check expression (حالت چک حلقه) می رود و اگر شرطی true باقی مانده باشد، تکرار بعدی را شروع می کند و در غیر این صورت کنترل از حلقه خارج می شود.

مثال

مثال زیر نحوه استفاده از دستور continueدر یک حلقۀ while را نشان می دهد. به نحوه skip کردن چاپ در زمانی که متغیر x برابر با 5 می شود دقت کنید.

<html>
   <body>
      
      <script type="text/javascript">
         <!--
            var x = 1;
            document.write("Entering the loop<br /> ");
         
            while (x < 10)
            {
               x = x + 1;
               
               if (x == 5){
                  continue; // skip rest of the loop body
               }
               document.write( x + "<br />");
            }
         
            document.write("Exiting the loop!<br /> ");
         //-->
      </script>
      
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

خروجی

Entering the loop
2
3
4
6
7
8
9
10
Exiting the loop!

 

استفاده از labelها (برچسب ها) برای کنترل جریان

با JavaScript 1.2 شروع می کنیم، label برای کنترل دقیق تر جریان می تواند با break و continue مورد استفاده شود. Label  شناسه ای  (identifier) است که به دنبال کولون (:) می آید و بر عبارت یا بلوک کد اعمال می گردد. در زیر دو مثال مختلف برای درک نحوه استفاده از labelها با break و continue وجود دارد.

نکته: استفاده از توقف های خطی (line break) در میان دستورات "break" یا "continue" و در label name (نام برچسب) مجاز نمی باشد. همچنین میان  label name  و حلقه مرتبط نباید دستور دیگری وجود داشته باشد.

دو مثال زیر را برای درک بهتر مفهوم label امتحان کنید.

مثال 1

مثال زیر نحوه پیاده سازی label با دستور break را نمایش می دهد.

<html>
   <body>
      
      <script type="text/javascript">
         <!--
            document.write("Entering the loop!<br /> ");
            outerloop: // This is the label name
         
            for (var i = 0; i < 5; i++)
            {
               document.write("Outerloop: " + i + "<br />");
               innerloop:
               for (var j = 0; j < 5; j++)
               {
                  if (j > 3 ) break ; // Quit the innermost loop
                  if (i == 2) break innerloop; // Do the same thing
                  if (i == 4) break outerloop; // Quit the outer loop
                  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: // This is the label name
         
         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!
در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش جاوا اسکریپت

Learn JavaScript

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...