دستور switch در JS

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

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

نکته کلیدی: switch برای مقایسه دقیق (===) یک مقدار با چندین گزینه طراحی شده و در شرایطی که بیش از سه حالت مختلف برای بررسی وجود دارد، خوانایی کد را بهبود می‌بخشد.

ساختار پایه دستور switch

سینتکس اصلی این دستور به صورت زیر است:

switch(expression) {
  case value1:
    // کدهای مربوط به value1
    break;
  case value2:
    // کدهای مربوط به value2
    break;
  default:
    // کدهای پیش‌فرض
}
عنصر توضیحات
expression عبارتی که مقدار آن با موارد مختلف مقایسه می‌شود
case هر یک از مقادیر ممکن برای مقایسه
break خروج از بلوک switch پس از اجرای کدهای مربوطه
default بلوک اختیاری برای حالتی که هیچ موردی مطابقت نداشته باشد

مثال کاربردی

در این مثال، نحوه استفاده از switch برای نمایش نام روزهای هفته بر اساس عدد ورودی را مشاهده می‌کنید:

  1. مقدار عددی روز را دریافت می‌کنیم
  2. با استفاده از switch نام روز متناظر را نمایش می‌دهیم
  3. در صورت ورود عدد نامعتبر، پیام خطا نمایش داده می‌شود
let day = 3;
let dayName;

switch(day) {
  case 1:
    dayName = "شنبه";
    break;
  case 2:
    dayName = "یکشنبه";
    break;
  case 3:
    dayName = "دوشنبه";
    break;
  default:
    dayName = "روز نامعتبر";
}

console.log(dayName); // خروجی: دوشنبه

برای یادگیری عمیق‌تر و مشاهده مثال‌های پیشرفته‌تر، می‌توانید به آموزش جامع کلیک کنید مراجعه نمایید.

نکات مهم در استفاده از switch

  • دستور break باعث خروج از بلوک switch می‌شود. در صورت فراموشی آن، اجرا به case بعدی ادامه می‌یابد!
  • مقایسه در switch به صورت دقیق (===) انجام می‌شود، یعنی نوع داده و مقدار باید کاملاً یکسان باشد.
  • بلوک default اختیاری است اما برای مدیریت موارد غیرمنتظره توصیه می‌شود.
  • می‌توان برای چند case مختلف یک بلوک کد مشترک تعریف کرد (fall-through).

در نهایت، انتخاب بین switch و if-else به شرایط و خوانایی کد بستگی دارد. برای تصمیم‌گیری‌های ساده، if-else ممکن است مناسب‌تر باشد، اما در شرایطی که مقایسه‌های متعدد با یک مقدار ثابت دارید، switch گزینه بهینه‌تری است.