0Pricing
Java Academy · درس

صيغة switch بأسلوب السهم

استخدموا صيغة سهم switch الحديثة

صيغة switch بأسلوب السهم درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 4 دروس في المجموع.

مشكلة switch القديمة

كانت عبارة switch التقليدية في Java تستخدم تسميات تنتهي بنقطتين، وكانت تتطلب كتابة break بعد كل حالة. وكان نسيان break يؤدي إلى أخطاء الانتقال التلقائي إلى الحالة التالية، حيث يستمر التنفيذ في الحالة التالية.

تقدم Java الحديثة (14 فأحدث) صيغة السهم arrow syntax التي تعالج هذه المشكلة بالكامل.

أساسيات صيغة السهم

في switch بصيغة السهم، تستخدم كل تسمية -> بدلًا من :. لا يحدث انتقال تلقائي إلى الحالة التالية، ولا حاجة إلى break. ينفذ كل فرع شيفرته الخاصة فقط.

public class Main {
    public static void main(String[] args) {
        int day = 3;
        switch (day) {
            case 1 -> System.out.println("Monday");
            case 3 -> System.out.println("Wednesday");
            default -> System.out.println("Other day");
        }
    }
}

لا مزيد من break

في الصيغة القديمة، كان عليك كتابة break; بعد كل حالة. أما صيغة السهم فتزيل هذا العبء بالكامل. لا ينفذ إلا الفرع المطابق.

public class Main {
    public static void main(String[] args) {
        char grade = 'B';
        switch (grade) {
            case 'A' -> System.out.println("Excellent");
            case 'B' -> System.out.println("Good");
            case 'C' -> System.out.println("Average");
            default -> System.out.println("Needs work");
        }
    }
}

أجسام الكتل

عندما يحتاج الفرع إلى أكثر من عبارة واحدة، ضعه بين القوسين المعقوفين { }. ويمكن أن تحتوي الكتلة على أي عدد من العبارات.

public class Main {
    public static void main(String[] args) {
        int code = 2;
        switch (code) {
            case 2 -> {
                System.out.println("Processing code 2");
                System.out.println("Done");
            }
            default -> System.out.println("Unknown");
        }
    }
}

استخدام switch مع String

تعمل صيغة السهم من switch مع قيم String تمامًا مثل الصيغة القديمة. وتستخدم المقارنات داخليًا equals، لذلك فهي تميّز بين الأحرف الكبيرة والصغيرة.

public class Main {
    public static void main(String[] args) {
        String fruit = "apple";
        switch (fruit) {
            case "apple" -> System.out.println("Red or green");
            case "banana" -> System.out.println("Yellow");
            default -> System.out.println("Unknown fruit");
        }
    }
}

فرع default

يعالج فرع default أي قيمة لا تغطيها الحالات الأخرى. ومن الممارسات الجيدة تضمينه دائمًا حتى تتم معالجة الإدخال غير المتوقع بطريقة سليمة.

public class Main {
    public static void main(String[] args) {
        int level = 99;
        switch (level) {
            case 1 -> System.out.println("Beginner");
            case 2 -> System.out.println("Intermediate");
            default -> System.out.println("Unknown level: " + level);
        }
    }
}

استخدام switch مع التعدادات

تتوافق صيغة السهم من switch تمامًا مع أنواع enum. ويمكنك حذف بادئة اسم التعداد من كل تسمية، مما يجعل الفروع أقصر وأكثر وضوحًا.

public class Main {
    enum Color { RED, GREEN, BLUE }
    public static void main(String[] args) {
        Color c = Color.GREEN;
        switch (c) {
            case RED -> System.out.println("Stop");
            case GREEN -> System.out.println("Go");
            case BLUE -> System.out.println("Calm");
        }
    }
}

استدعاء الدوال داخل الفروع

يمكن لكل فرع من فروع السهم استدعاء أي دالة. ويساعد ذلك في الحفاظ على وضوح switch مع تفويض العمل الفعلي إلى مكان آخر.

public class Main {
    static void greet(String who) {
        System.out.println("Hello, " + who);
    }
    public static void main(String[] args) {
        int who = 1;
        switch (who) {
            case 1 -> greet("Alice");
            case 2 -> greet("Bob");
            default -> greet("Stranger");
        }
    }
}

أوضح من if-else

غالبًا ما تستبدل صيغة السهم من switch سلاسل if-else الطويلة. وعندما تقارن متغيرًا واحدًا بعدة قيم ثابتة، تكون قراءة switch أوضح.

public class Main {
    public static void main(String[] args) {
        int month = 4;
        switch (month) {
            case 12, 1, 2 -> System.out.println("Winter");
            case 3, 4, 5 -> System.out.println("Spring");
            case 6, 7, 8 -> System.out.println("Summer");
            default -> System.out.println("Autumn");
        }
    }
}

للتأثيرات الجانبية فقط

تنفذ عبارة switch statement (باستخدام صيغة السهم هنا) إجراءات، لكنها لا تنتج قيمة. ولإرجاع قيمة، تستخدم تعبير switch، وسنتناوله في الدرس التالي.

public class Main {
    public static void main(String[] args) {
        int n = 5;
        switch (n % 2) {
            case 0 -> System.out.println(n + " is even");
            case 1 -> System.out.println(n + " is odd");
        }
    }
}

قيم متعددة، وفرع واحد

يمكن لعدة قيم مشاركة فرع واحد عبر فصلها بفواصل. وهذه معاينة للحالات متعددة التسميات التي سنتناولها لاحقًا.

public class Main {
    public static void main(String[] args) {
        char c = 'e';
        switch (c) {
            case 'a', 'e', 'i', 'o', 'u' -> System.out.println("Vowel");
            default -> System.out.println("Consonant");
        }
    }
}

تحقق سريع

ما الميزة الأساسية لصيغة السهم من switch مقارنة بالصيغة القديمة التي تستخدم النقطتين؟

مراجعة

تعلمت صيغة switch الحديثة باستخدام السهم:

  • استخدم -> بدلًا من :
  • لا يحدث انتقال تلقائي إلى الحالة التالية ولا حاجة إلى break
  • استخدم الأقواس المعقوفة { } للفروع متعددة العبارات
  • افصل التسميات بفواصل لمشاركة فرع واحد
  • ضمّن دائمًا فرع default

الأسئلة الشائعة

هل درس «صيغة switch بأسلوب السهم» مجاني؟

نعم — نص درس «صيغة switch بأسلوب السهم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 4 دروس في المجموع.

ماذا ستتعلم في «صيغة switch بأسلوب السهم»؟

استخدموا صيغة سهم switch الحديثة تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟

لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «صيغة switch بأسلوب السهم»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟

نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. صيغة switch بأسلوب السهم
  2. استخدام switch كتعبير
  3. الكلمة المفتاحية yield
  4. حالات متعددة التسميات
← العودة إلى Java Academy