دستور switch در C
دستور switch در زبان برنامهنویسی C
دستور switch یکی از ساختارهای کنترلی مهم در زبان C است که برای تصمیمگیری چندگانه بر اساس مقایسه یک متغیر با مقادیر مختلف استفاده میشود. این دستور جایگزین مناسبی برای ساختارهای if-else تو در تو محسوب میشود.
نکته کلیدی: دستور switch فقط با انواع دادهای که میتوانند به اعداد صحیح تبدیل شوند کار میکند (مانند char, int, enum).
ساختار پایه دستور switch
سینتکس اصلی دستور switch به صورت زیر است:
switch(عبارت) { case مقدار1: // کدهای مربوطه break; case مقدار2: // کدهای مربوطه break; default: // کدهای پیشفرض }
هر بلوک case شامل یک مقدار برای مقایسه با عبارت اصلی است. اگر هیچیک از caseها مطابقت نداشته باشند، بلوک default اجرا میشود.
عنصر | توضیح |
---|---|
switch | کلمه کلیدی شروع ساختار |
case | تعریف یک شرط خاص |
break | خروج از بلوک switch |
default | شرط پیشفرض در صورت عدم تطابق |
مثال کاربردی
در این مثال، برنامه روزهای هفته را بر اساس عدد ورودی نمایش میدهد:
#include <stdio.h> int main() { int day = 3; switch(day) { case 1: printf("شنبه"); break; case 2: printf("یکشنبه"); break; case 3: printf("دوشنبه"); break; default: printf("روز نامعتبر"); } return 0; }
در این کد، اگر مقدار متغیر day برابر با 3 باشد، عبارت "دوشنبه" چاپ خواهد شد.
نکات مهم در استفاده از switch
- دستور break باعث خروج از بلوک switch میشود. عدم استفاده از آن باعث اجرای caseهای بعدی میشود (پدیده fall-through)
- بلوک default اختیاری است اما برای مدیریت شرایط غیرمنتظره توصیه میشود
- مقادیر caseها باید منحصر به فرد و از نوع صحیح یا کاراکتر باشند
- میتوان چندین case را برای یک بلوک کد مشترک استفاده کرد
برای یادگیری عمیقتر و مثالهای پیشرفتهتر میتوانید از منبع بیشتر بخوانید استفاده نمایید.
مقایسه switch و if-else
در جدول زیر تفاوتهای کلیدی این دو ساختار را مشاهده میکنید:
ملاک | switch | if-else |
---|---|---|
نوع مقایسه | برابر بودن | شرایط مختلف |
کارایی | برای شرایط چندگانه ساده | برای شرایط پیچیده |
خوانایی | بالا در شرایط برابر | بالا در شرایط پیچیده |
در نهایت، انتخاب بین switch و if-else به شرایط مسئله و خوانایی کد بستگی دارد. برای اطلاعات تخصصیتر میتوانید به این منبع مراجعه کنید.