سینتکس switch و case

ساختار switch و case در زبان C

دستور switch یکی از ساختارهای کنترلی پرکاربرد در زبان C است که امکان اجرای شرطی چندگانه را فراهم می‌کند. این دستور زمانی مفید است که بخواهیم بین چندین گزینه مختلف بر اساس مقدار یک متغیر تصمیم‌گیری کنیم.

نکته کلیدی: switch فقط با مقادیر ثابت (constant) کار می‌کد و نمی‌توان از عبارات شرطی یا محدوده‌ها در آن استفاده کرد.

سینتکس پایه

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

switch (عبارت) {
   case مقدار1:
      // کدهای مربوط به مقدار1
      break;
   case مقدار2:
      // کدهای مربوط به مقدار2
      break;
   default:
      // کدهای پیش‌فرض
}

هر بلوک case باید با یک مقدار ثابت و دو نقطه (:) پایان یابد. دستور break برای خروج از بلوک switch استفاده می‌شود و در صورت عدم وجود آن، اجرا به case بعدی ادامه می‌یابد (پدیده fall-through).

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

مثال عملی

در این مثال ساده، از switch برای تشخیص روزهای هفته استفاده شده است:

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

برای اطلاعات بیشتر درباره کاربردهای پیشرفته‌تر switch می‌توانید اینجا را نگاه کنید.

نکات مهم

  • مقادیر case باید منحصر به فرد باشند (تکراری نباشند)
  • switch فقط با انواع داده‌ای صحیح (int, char, enum) کار می‌کند
  • عدم استفاده از break ممکن است باعث رفتار غیرمنتظره شود
  • بلوک default اختیاری است اما توصیه می‌شود

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