دستور switch در JS
دستور switch در جاوااسکریپت
دستور switch یکی از ساختارهای کنترلی در زبان جاوااسکریپت است که برای تصمیمگیریهای چندگانه بر اساس مقایسه مقدار یک عبارت با موارد مختلف استفاده میشود. این دستور جایگزین مناسبی برای ساختارهای if-else طولانی و پیچیده محسوب میشود.
نکته کلیدی: switch برای مقایسه دقیق (===) یک مقدار با چندین گزینه طراحی شده و در شرایطی که بیش از سه حالت مختلف برای بررسی وجود دارد، خوانایی کد را بهبود میبخشد.
ساختار پایه دستور switch
سینتکس اصلی این دستور به صورت زیر است:
switch(expression) {
case value1:
// کدهای مربوط به value1
break;
case value2:
// کدهای مربوط به value2
break;
default:
// کدهای پیشفرض
}
case value1:
// کدهای مربوط به value1
break;
case value2:
// کدهای مربوط به value2
break;
default:
// کدهای پیشفرض
}
عنصر | توضیحات |
---|---|
expression | عبارتی که مقدار آن با موارد مختلف مقایسه میشود |
case | هر یک از مقادیر ممکن برای مقایسه |
break | خروج از بلوک switch پس از اجرای کدهای مربوطه |
default | بلوک اختیاری برای حالتی که هیچ موردی مطابقت نداشته باشد |
مثال کاربردی
در این مثال، نحوه استفاده از switch برای نمایش نام روزهای هفته بر اساس عدد ورودی را مشاهده میکنید:
- مقدار عددی روز را دریافت میکنیم
- با استفاده از switch نام روز متناظر را نمایش میدهیم
- در صورت ورود عدد نامعتبر، پیام خطا نمایش داده میشود
let day = 3;
let dayName;
switch(day) {
case 1:
dayName = "شنبه";
break;
case 2:
dayName = "یکشنبه";
break;
case 3:
dayName = "دوشنبه";
break;
default:
dayName = "روز نامعتبر";
}
console.log(dayName); // خروجی: دوشنبه
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 گزینه بهینهتری است.