دستور switch در JavaScript

از دستور switch برای انجام اقدامات مختلف در شرایط مختلف استفاده می کنیم. این دستور عملکردی مشابه if و else if دارد.

به طور کلی، استفاده از دستور switch به جای چندین شرط if-else، کد را خوانا تر و مرتب‌ تر می‌کند.

نکته: این دستور مقدار یک متغیر را در چندین حالت مختلف مقایسه می کند و برای هر حالت بلوک کد متفاوتی اجرا می کند.

switch (expression) {
    case x:
        // یک بلوک کد
        break;

    case y:
        // یک بلوک کد
        break;

    default:
        // یک بلوک کد

}

فرآیند عملکرد switch :

  1. switch یک عبارت (expression) را دریافت می‌کند.
  2. عبارت دریافت شده را به ترتیب در هر case مقایسه می‌کند.
  3. اگر تطابقی در case پیدا شود، بلوک کد مربوط اجرا می‌شود.
  4. اگر هیچ‌کدام از مقادیر case تطابق نداشته باشند، بلوک کد default (اختیاری) اجرا می‌شود.
switch (new Date().getDay()) {
    case 0:
        day = "یک شنبه";
        break;

    case 1:
        day = "دو شنبه";
        break;

    case 2:
        day = "سه شنبه";
        break;

    case 3:
        day = "چهار شنبه";
        break;

    case 4:
        day = "پنج شنبه";
        break;

    case 5:
        day = "جمعه";
        break;

    case 6:
        day = "شنبه";

}

نکته: متد ()getDay ایام هفته را به صورت عدد (از 0 تا 6) بر می گرداند. (یکشنبه = 0، دوشنبه = 1، ...) 

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

break در switch

دستور break باعث می‌شود، اجرا switch، شکسته شود و ادامه switch اجرا نشود.

نکته: اگر در case تطبیق شده از break استفاده نکنیم، بقیه case ها و default، به صورت پایین رو (Fall-through) بدون نیاز به تطبیق اجرا می‌شود.

switch (color) {
    case "قرمز":
        text += "رنگ مورد علاقه من قرمز است. <br/>";

    case "آبی":
        text += "رنگ مورد علاقه من آبی است. <br/>";

    case "سبز":
        text += "رنگ مورد علاقه من سبز است. <br/>";

    default:
        text += "من رنگ مورد علاقه ندارم. <br/>";

}

default در switch

دستور default، اختیاری است و در صورت عدم تطابق عبارات case ها اجرا شود.

switch (0) {
    case 1:
        text = "عدد 1 است.";
        break;

    case 2:
        text = "عدد 2 است.";
        break;

    default:
        text = "عدد یافت نشد.";

}

مقایسه دقیق

در ساختار switch، از مقایسه دقیق (strict comparison) با استفاده از عملگر (===) استفاده می‌شود. یعنی علاوه بر بررسی مقدار، نوع داده نیز مطابقت داده می شود.

let x = "0";
switch (x) {
    case 0:
        text = "خاموش";
        break;

    case 1:
        text = "روشن";
        break;

    default:
        text = "مقداری پیدا نشد!";

}

 

توسعه دهندگان
احسان اسلامی