MATIN MOLKARA
SERIES: JavaScript — PART 14 OF 108

14- آموزش جاوااسکریپت | کار با دستور Switch

در این آموزش با دستور switch در جاوااسکریپت آشنا می‌شویم. یاد می‌گیریم چگونه به‌جای استفاده از چندین if/else if، از switch برای بررسی چند حالت مختلف استفاده کنیم. همچنین با default، نقش break و یک مثال کاربردی برای تشخیص روز هفته آشنا خواهیم شد.

بعد از یادگیری دستورات شرطی if/else، حالا نوبت به یکی دیگر از ابزارهای کنترل جریان در جاوااسکریپت می‌رسد: دستور switch.

دستور switch زمانی مفید است که بخواهیم مقدار یک متغیر را با چندین حالت مختلف مقایسه کنیم. در چنین شرایطی، استفاده از switch معمولاً از زنجیره‌های طولانی if/else if خواناتر و منظم‌تر است.


دستور Switch چیست؟

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

ساختار کلی:

switch (expression) {
    case value1:
        // code block
        break;
    case value2:
        // code block
        break;
    default:
        // code block
}

اجزای اصلی:

  • expression: مقداری که قرار است بررسی شود
  • case: حالت‌های مختلف برای مقایسه
  • break: خروج از switch پس از اجرای یک case
  • default: اگر هیچ caseی مطابقت نداشت، این بخش اجرا می‌شود

مثال ساده با رنگ‌ها

فرض کنید متغیری به نام color داریم و می‌خواهیم بر اساس مقدار آن، پیام مناسب را در کنسول چاپ کنیم.

let color = 'red';

switch (color) {
    case 'red':
        console.log('Color is red');
        break;
    case 'blue':
        console.log('Color is blue');
        break;
    default:
        console.log('Color is not red or blue');
        break;
}

نتیجه:

  • اگر مقدار color برابر 'red' باشد، خروجی می‌شود:
Color is red
  • اگر مقدار color برابر 'blue' باشد:
Color is blue
  • اگر مقدار color مثلاً 'yellow' باشد:
Color is not red or blue

نقش break در Switch

استفاده از break در پایان هر case بسیار مهم است.
اگر break را ننویسیم، جاوااسکریپت اجرای caseهای بعدی را هم ادامه می‌دهد. به این رفتار Fall-through گفته می‌شود.

مثال:

let color = 'red';

switch (color) {
    case 'red':
        console.log('Color is red');
    case 'blue':
        console.log('Color is blue');
    default:
        console.log('Color is not red or blue');
}

در این حالت، چون بعد از case 'red' از break استفاده نشده، علاوه بر پیام اول، بخش‌های بعدی هم اجرا می‌شوند.


چه زمانی از Switch استفاده کنیم؟

اگر فقط یک یا دو شرط ساده دارید، if/else کاملاً مناسب است.
اما اگر قرار باشد یک مقدار را با چندین حالت مختلف مقایسه کنید، switch معمولاً انتخاب بهتری است؛ چون:

  • کد خواناتر می‌شود
  • ساختار منظم‌تری دارد
  • مدیریت چندین حالت مختلف راحت‌تر است

مثال کاربردی: تشخیص روز هفته

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

در جاوااسکریپت می‌توان با new Date().getDay() شماره روز هفته را دریافت کرد. این متد عددی بین 0 تا 6 برمی‌گرداند:

  • 0 = Sunday
  • 1 = Monday
  • 2 = Tuesday
  • 3 = Wednesday
  • 4 = Thursday
  • 5 = Friday
  • 6 = Saturday

نمونه کد:

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;
}

console.log(`Today is ${day}`);

خروجی نمونه:

Today is Sunday

البته خروجی واقعی به روزی بستگی دارد که کد را اجرا می‌کنید.


تفاوت Switch و If/Else

هر دو برای تصمیم‌گیری در برنامه استفاده می‌شوند، اما کاربرد آن‌ها کمی متفاوت است:

از if/else استفاده کنید وقتی:

  • شرط‌ها پیچیده هستند
  • نیاز به مقایسه‌های ترکیبی دارید
  • از عملگرهایی مثل >, <, &&, || استفاده می‌کنید

از switch استفاده کنید وقتی:

  • فقط یک متغیر را بررسی می‌کنید
  • چندین مقدار ثابت برای مقایسه دارید
  • می‌خواهید کد تمیزتر و خواناتر باشد

جمع‌بندی

در این آموزش با دستور switch در جاوااسکریپت آشنا شدیم و دیدیم که:

  • switch جایگزین مناسبی برای چندین if/else if است
  • هر case یک حالت مشخص را بررسی می‌کند
  • break برای جلوگیری از اجرای caseهای بعدی ضروری است
  • default زمانی اجرا می‌شود که هیچ حالتی مطابقت نداشته باشد
  • از switch می‌توان در مثال‌های کاربردی مثل تشخیص روز هفته استفاده کرد

در آموزش بعدی، به سراغ توابع در جاوااسکریپت می‌رویم و با Function Declaration و Function Expression آشنا خواهیم شد.

// 0 comments
#جاوااسکریپت#switch#دستور switch#کنترل جریان#شرط در جاوااسکریپت#برنامه نویسی#آموزش جاوااسکریپت#JavaScript

نظرات (0)

نظر خود را بنویسید