دستورات شرطی  if…else که یکی از پرکاربردترین دستورات در زبان برنامه نویسی می باشند در عبارات شرطی کوتاه که حداکثر تا سه شرط دارند مفید خواهد بود.اما در عبارات شرطی طولانی تر که شامل چندین بررسی شرط می باشد استفاده از  if…else کار را کمی پیچیده تر می کند.برای چنین مواردی دستور switch در جاوا اسکریپت ارائه شده که برای دستورات شرطی چندگانه به کار می رود.این دستور برای گزینش و اجرای یک دستور از میان چندین دستور مختلف بکار می رود.

فلوچارت if…else

 

سینتکس:

switch (expression) {
   case condition 1: statement(s)
   break;
   
   case condition 2: statement(s)
   break;
   ...
   
   case condition n: statement(s)
   break;
   
   default: statement(s)
}

رویه ی اجرای این دستور به شرح زیر می باشد.
عبارت switch ابتدا یک بار ارزیابی می گردد.
سپس مقدار عبارت با مقادیر هر یک از case ها به طور جداگانه مقایسه می گردد.
چنانچه مقدار عبارت با یکی از case ها مطابقت و همخوانی داشت، قطعه کد مربوطه اجرا می گردد.

مثال:

<html>
   <body>   
      <script type = "text/javascript">
         <!--
            var grade = 'A';
            document.write("Entering switch block<br />");
            switch (grade) {
               case 'A': document.write("Good job<br />");
               break;
            
               case 'B': document.write("Pretty good<br />");
               break;
            
               case 'C': document.write("Passed<br />");
               break;
            
               case 'D': document.write("Not so good<br />");
               break;
            
               case 'F': document.write("Failed<br />");
               break;
            
               default:  document.write("Unknown grade<br />")
            }
            document.write("Exiting switch block");
         //-->
      </script>      
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

خروجی:

Entering switch block
Good job
Exiting switch block
Set the variable to different value and then try...

کلمه کلیدی break

وقتی که کامپایلر به کلمه کلیدی می رسد، از آن بلوک خارج شده و کدهای بعد از آن را اجرا می کند.این کار از اجرای کدهای بعد از بلوکی که با شرط مطابقت داشته جلوگیری می کند.

کلمه کلیدی default

اگر هر یک از عبارت switch با هیچ یک از عبارت case مطابقت نداشت، آنگاه بلوک کد کلمه کلیدی switch اجرا خواهد شد.

مثال:

<html>
   <body>      
      <script type = "text/javascript">
         <!--
            var grade = 'A';
            document.write("Entering switch block<br />");
            switch (grade) {
               case 'A': document.write("Good job<br />");
               case 'B': document.write("Pretty good<br />");
               case 'C': document.write("Passed<br />");
               case 'D': document.write("Not so good<br />");
               case 'F': document.write("Failed<br />");
               default: document.write("Unknown grade<br />")
            }
            document.write("Exiting switch block");
         //-->
      </script>      
      <p>Set the variable to different value and then try...</p>
   </body>
</html>

خروجی:

Entering switch block
Good job
Pretty good
Passed
Not so good
Failed
Unknown grade
Exiting switch block
Set the variable to different value and then try...