دستور switch در C

استفاده از switch برای انتخاب بین حالت‌های متعدد و نقش break و default

دستور switch

وقتی می‌خواهید یک متغیر را با چندین مقدار مشخص مقایسه کنید، به‌جای زنجیره‌ی طولانی else if از switch استفاده کنید — تمیزتر و خواناتر است:

switch (expression) {
    case value1:
        // کد
        break;
    case value2:
        // کد
        break;
    default:
        // اگر هیچ case مطابقت نداشت
}

مثال: روز هفته

int day = 4;

switch (day) {
    case 1:
        printf("دوشنبه");
        break;
    case 2:
        printf("سه‌شنبه");
        break;
    case 3:
        printf("چهارشنبه");
        break;
    case 4:
        printf("پنج‌شنبه");
        break;
    default:
        printf("روز نامعتبر");
}

نقش کلیدی break

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

int day = 2;

switch (day) {
    case 1:
        printf("شنبه");
    case 2:
        printf("یکشنبه");   // اجرا می‌شود
    case 3:
        printf("دوشنبه");   // این هم اجرا می‌شود! (خطا!)
        break;
}

گاهی این رفتار عمداً استفاده می‌شود تا چند case یک کد مشترک داشته باشند:

switch (day) {
    case 6:
    case 7:
        printf("آخر هفته");  // هم ۶ و هم ۷
        break;
    default:
        printf("روز کاری");
}

بخش default

اگر هیچ case‌ای با مقدار مطابقت نداشته باشد، بخش default اجرا می‌شود. مثل else در if.

چه زمانی switch و چه زمانی if؟

ویژگیswitchif...else
مقایسه با مقادیر ثابتعالی ✅مناسب
شرط‌های پیچیده (بزرگتر/کوچکتر)نمی‌تواند ❌عالی ✅
مقایسه رشتهنمی‌تواند ❌می‌تواند ✅
خوانایی با caseهای زیادبهتربدتر

نکات مهم

این مبحث بخشی از دوره آموزش کامل زبان C است.

ابزارهای مرتبط