سینتکس 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 استفاده کرد.