الدرس 16: المنطق الشرطي: جملة switch
تعد جملة switch بديلاً فعالاً لسلالم if-else if الطويلة عند مقارنة متغير واحد بعدة قيم ثابتة.
القاعدة
c switch (expression) { case constant1: // كتلة الكود 1 break; case constant2: // كتلة الكود 2 break; default: // الكود في حال عدم تطابق أي حالة (اختياري) }
قواعد أساسية:
- يجب أن يعطي الـ
expressionنوعاً صحيحاً (integer) أو حرفياً (character). - يجب أن تكون
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 أعلاه)، إلا أنه عادةً ما يكون غير مرغوب فيه ومصدراً للأخطاء.