العودة إلى الدورة

المنطق الشرطي: جملة 'switch'

لغة C: من الصفر إلى الاحتراف - الدليل الشامل للمبتدئين

الدرس 16: المنطق الشرطي: جملة switch

تعد جملة switch بديلاً فعالاً لسلالم if-else if الطويلة عند مقارنة متغير واحد بعدة قيم ثابتة.

القاعدة

c switch (expression) { case constant1: // كتلة الكود 1 break; case constant2: // كتلة الكود 2 break; default: // الكود في حال عدم تطابق أي حالة (اختياري) }

قواعد أساسية:

  1. يجب أن يعطي الـ expression نوعاً صحيحاً (integer) أو حرفياً (character).
  2. يجب أن تكون constant1 و constant2 وما إلى ذلك تعبيرات ثابتة صحيحة (قيم مباشرة أو ثوابت معرفة، وليست متغيرات).

مثال: التحقق من اليوم

c #include <stdio.h>

int main() { int day = 3;

switch (day) {
    case 1:
    case 7:
        printf("عطلة نهاية الأسبوع.\n");
        break;
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
        printf("يوم عمل.\n");
        break;
    default:
        printf("رقم يوم غير صالح.\n");
}
return 0;

}

أهمية break

إذا حذفت كلمة break ، فسيستمر التنفيذ إلى كتلة الـ case التالية تلقائياً (fall through)، حتى لو لم يتحقق شرط تلك الحالة. بينما يكون هذا مفيداً أحياناً للتجميع (مثل الحالات 1 و 7 أعلاه)، إلا أنه عادةً ما يكون غير مرغوب فيه ومصدراً للأخطاء.