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

التحكم المتقدم في التدفق: جملة switch (والتعبيرات الحديثة)

إتقان لغة Java: من الصفر إلى مطور محترف (رحلة من 50 درساً)

الدرس 11: التحكم المتقدم في التدفق: جملة switch

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

1. صيغة switch التقليدية

تستخدم Java تسميات case لتعريف القيم المحتملة والكلمة المفتاحية break للخروج من الهيكل.

java int dayOfWeek = 3; // الأربعاء String dayName;

switch (dayOfWeek) { case 1: dayName = "Monday"; break; case 2: dayName = "Tuesday"; break; case 3: dayName = "Wednesday"; break; default: dayName = "Unknown Day"; // لا نحتاج لـ break هنا لأنها الحالة الأخيرة }

System.out.println(dayName); // المخرج: Wednesday

الكلمة المفتاحية break: السقوط المتتالي (Fall-through)

إذا حذفت جملة break ، فسيستمر التنفيذ إلى الـ case التالي، وهو أمر غير مرغوب فيه عادةً.

2. تعبيرات switch الحديثة (JDK 14+)

قدمت Java الحديثة تعبيرات switch باستخدام تدوين السهم (->)، والذي يعالج الـ break تلقائياً ويمكنه إرجاع قيمة مباشرة.

java int month = 7;

// استخدام Switch كتعبير يعيد قيمة String season = switch (month) { case 12, 1, 2 -> "Winter"; case 3, 4, 5 -> "Spring"; case 6, 7, 8 -> "Summer"; case 9, 10, 11 -> "Autumn"; default -> { // للحالات التي تتطلب عدة جمل، استخدم 'yield' System.out.println("Invalid month input."); yield "Unknown"; } };

System.out.println(season); // المخرج: Summer

أفضل ممارسة: استخدم دائماً صيغة تعبير switch الحديثة (->) إذا كان إصدار JDK الخاص بك يدعمها، لأنها أنظف وأقل عرضة للأخطاء.