JavaScript Switch Statement

switch در جاوا اسکریپت

از عبارت switch برای انتخاب یکی از بلوک‌های کد جهت اجرا استفاده کنید.
switch(expression) {
  case x:
    // code block
  break;
  case y:
    // code block
  break;
  default:
    // code block
}

نحوه عملکرد آن به این صورت است که: ابتدا عبارت switch ارزیابی شده و سپس مقدار آن با هر یک از موارد case مقایسه می‌شود. در صورتی که مطابقتی حاصل شود، آن بلوک کد اجرا و در غیر این صورت بلوک کد داخل عبارت default اجرا خواهد شد.

در مثال زیر با استفاده از تابع شیء getDay() که پیشتر با آن آشنا شدیم، روز هفته را بر اساس عددی بین صفر و 6 به دست می‌آوریم. سپس با استفاده از عبارت switch حالت‌های مختلف بررسی شده و عدد به دست آمده را به اسم واقعی روز تبدیل می‌کنیم.


<!DOCTYPE HTML>
<html>
  <body>
    <h2> JavaScript switch </h2>
    <p id = "demo"> </p>
    <script>
      let day;
      switch (new Date().getDay()) {
        case 0:
          day = "Sunday";
          break;
        case 1:
          day = "Monday";
          break;
        case 2:
          day = "Tuesday";
          break;
        case 3:
          day = "Wednesday";
          break;
        case 4:
          day = "Thursday";
          break;
        case 5:
          day = "Friday";
          break;
        case 6:
          day = "Saturday";
          break;
      }
      document.getElementById("demo").innerHTML = "Today is " + day;
    </script>
  </body>
</html>

خروجی:

JavaScript switch

کلید واژه break

زمانی که جاوا اسکریپت به break می‌رسد، از بلوک switch خارج می‌شود. این کار باعث متوقف شدن اجرای بلوک داخل switch می‌شود. به کار بردن break برای آخرین case ضروری نیست.

کلید واژه default

در صورتی که هیچ مطابقتی وجود نداشته باشد، بلوک کد کلید واژه default اجرا خواهد شد.

بلوک‌های کد مشترک

بعضی اوقات موارد متفاوت در عبارت switch کد مشابهی را اجرا کنند. در این حالات می‌توان به مانند کد زیر عمل کرد. در این کد حالات 4 و 5 دارای یک بلوک کد مشترک و همچنین حالات 0 و 6 نیز دارای یک بلوک کد مشترک دیگر هستند.

switch (new Date().getDay()) {
case 4:
case 5:
text = "Soon it is Weekend";
break;
case 0:
case 6:
text = "It is Weekend";
break;
default:
text = "Looking forward to the Weekend";
}