0Pricing
Java Academy · درس

‏break وcontinue

تخطَّ التكرارات واخرج منها

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

لماذا نتحكم في الحلقة؟

تكرر الحلقات تنفيذ التعليمات البرمجية، لكنكم قد تحتاجون أحيانًا إلى التوقف مبكرًا أو تخطي عنصر.

توفر Java أداتين بسيطتين لذلك: تنهي break الحلقة تمامًا، بينما تتخطى continue التكرار الحالي وتنتقل إلى التكرار التالي.

في هذا الدرس ستتعلمون بالضبط متى تُنفَّذ كل منهما وكيف تغيّران مسار الحلقة.

تعليمة break

توقف الكلمة المفتاحية break أقرب حلقة فورًا.

ينتقل التنفيذ إلى أول سطر بعد الحلقة، ويتم التخلي عن جميع التكرارات المتبقية.

في المثال أدناه، تتوقف الحلقة بمجرد وصول i إلى 3.

public class Main {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                break;
            }
            System.out.println("i = " + i);
        }
        System.out.println("Done");
    }
}

ما الذي طبعته break

طبع البرنامج i = 1 وi = 2، ثم طبع Done.

عندما أصبحت قيمة i تساوي 3، نُفِّذت break، ولذلك لم تُطبع القيم 3 و4 و5.

تكون break مثالية عندما تجدون ما تحتاجون إليه وتريدون إيقاف البحث.

تعليمة continue

تتخطى الكلمة المفتاحية continue بقية التكرار الحالي.

لا تتوقف الحلقة، بل تعود إلى ترويسة الحلقة وتحاول استخدام القيمة التالية.

هنا نتخطى الرقم 3، لكننا نتابع التنفيذ.

public class Main {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                continue;
            }
            System.out.println("i = " + i);
        }
    }
}

ما الذي طبعته continue

كانت المخرجات 1 و2 و4 و5. تم تخطي القيمة 3، لكن الحلقة واصلت العمل.

هذا هو الفرق الأساسي: تخرج break من الحلقة، بينما تتخطى continue تكرارًا واحدًا فقط.

تخطي الأعداد الزوجية

من الاستخدامات الشائعة لـ continue التصفية؛ إذ نتخطى القيم التي لا تهمنا.

تطبع هذه الحلقة الأعداد الفردية فقط، إذ تستخدم continue كلما كان العدد زوجيًا.

public class Main {
    public static void main(String[] args) {
        for (int i = 1; i <= 8; i++) {
            if (i % 2 == 0) {
                continue;
            }
            System.out.println(i);
        }
    }
}

استخدام break في حلقة while

تعمل break وcontinue مع جميع أنواع الحلقات: for وwhile وdo-while.

تعدّ هذه الحلقة while تصاعديًا، لكنها تخرج فورًا عندما يتجاوز المجموع 10.

public class Main {
    public static void main(String[] args) {
        int total = 0;
        int n = 1;
        while (true) {
            total += n;
            if (total > 10) {
                break;
            }
            n++;
        }
        System.out.println("Stopped at total = " + total);
    }
}

تخرج break من حلقة واحدة فقط

هناك قاعدة مهمة: تخرج break العادية من الحلقة الداخلية الأقرب التي تحيط بها فقط.

إذا كانت لديكم حلقة داخل حلقة، فإن break تخرج من الحلقة الداخلية، بينما تواصل الحلقة الخارجية عملها.

راقبوا هذا المثال المتداخل بعناية.

public class Main {
    public static void main(String[] args) {
        for (int row = 1; row <= 3; row++) {
            for (int col = 1; col <= 3; col++) {
                if (col == 2) {
                    break;
                }
                System.out.println("row " + row + ", col " + col);
            }
        }
    }
}

نتيجة break المتداخلة

أوقفت break حلقة الأعمدة الداخلية فقط، لذلك طبع كل صف العمود 1 وحده.

واصلت حلقة الصفوف الخارجية العمل على الصفوف الثلاثة كلها.

للخروج من الحلقتين معًا، تحتاجون إلى break ذات تسمية، وهو ما سيتناوله الدرس التالي.

تؤثر continue في أقرب حلقة أيضًا

مثل break تمامًا، تؤثر continue العادية في الحلقة المحيطة بها مباشرة فقط.

في الحلقات المتداخلة، تنتقل continue إلى التكرار التالي للحلقة الداخلية، لا الخارجية.

ضعوا ذلك في الحسبان عندما يمتد منطقكم عبر حلقتين.

public class Main {
    public static void main(String[] args) {
        for (int a = 1; a <= 2; a++) {
            for (int b = 1; b <= 3; b++) {
                if (b == 2) {
                    continue;
                }
                System.out.println(a + "-" + b);
            }
        }
    }
}

نموذج ذهني سريع

تخيلوا الحلقة كمسار تركضون حوله.

break = مغادرة المسار والابتعاد عنه. continue = التقدم إلى خط البداية استعدادًا للدورة التالية.

تؤثر كلتاهما في المسار الذي أنتم فيه حاليًا فقط، ولا تؤثران مطلقًا في المسار الخارجي.

تحقق سريع

اختبروا فهمكم للفرق بين break وcontinue.

مراجعة

تعلمتم أن break تخرج من أقرب حلقة، بينما تنتقل continue إلى التكرار التالي لها.

في الحلقات المتداخلة، تؤثر كلتاهما في الحلقة الداخلية فقط. وللتحكم في حلقة خارجية تحتاجون إلى التسميات، التي ستستكشفونها لاحقًا.

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

هل درس «‏break وcontinue» مجاني؟

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

ماذا ستتعلم في «‏break وcontinue»؟

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

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

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

كم من الوقت يستغرق درس «‏break وcontinue»؟

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

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

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

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

  1. ‏break وcontinue
  2. ‏break مع تسمية
  3. ‏continue مع تسمية
  4. تجنّب تدفق الشيفرة المعقد
← العودة إلى Java Academy