جاري التحميل...

break و continue في Java

اجعل i تدور من 1 إلى 5. عندما يساوي i الرقم 3، اخرج من الحلقة بـ break قبل الطباعة. يجب أن تظهر الشاشة سطرين فقط: 1، ثم 2. هذا التوقف المبكر أداة واحدة في هذه الصفحة. الأداة الأخرى هي continue؛ تتخطى دورة واحدة وتُبقي الحلقة دائرة حتى لا يُطبع 3 بينما يُطبع 4 و 5.

break ينهي الحلقة مبكرًا

أنشئ ملف برنامج صغير باسم Skip.java. يجب أن يطابق public class في السطر الأول اسم الملف: public class Skip. لا تُبقِ اسم فئة قديمًا مثل Pulse أو Beat في هذا الملف؛ المترجم يتوقع أن يتوافق اسم الفئة مع اسم الملف.
داخل main اكتب for يمكنه التوقف مبكرًا:
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
break;
}
System.out.println(i);
}
رأس for بنفس الشكل الذي تعرفه: بداية، اختبار، خطوة. داخل الأقواس المجعدة يسأل if هل i يساوي 3. عندما يكون ذلك true، يعمل break;. يترك break حلقة for كلها دفعة واحدة. لا يعمل println تحت if في تلك الدورة، ولا يصل i داخل هذه الحلقة إلى 4 أو 5. عندما يكون i يساوي 1 أو 2، يكون if يساوي false، فيكتب println(i) الرقم. احفظ الملف قبل الترجمة.

برنامج يتوقف عند break

هذه هي النسخة التي تترجمها أولًا.

break عندما i يساوي 3

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

من المجلد الذي يحوي Skip.java اكتب javac Skip.java. عندما تتطابق الأقواس العادية والأقواس المجعدة والفواصل المنقوطة، لا يكتب javac أي سطر من عنده. ثم اكتب java Skip — وليس java Skip.java. أزل لاحقة .java من الأمر الثاني. الأمران نفسهما يعملان على Windows وعلى macOS؛ هذه الصفحة لا تحتاج إملاء صدفة مختلفًا لأي من النظامين. يجب أن يطبع البرنامج سطرين ويتوقف: 1، ثم 2. لا يطلب منك الكتابة. إذا بقي الطرفية منتظرة إدخال لوحة المفاتيح، فما زال استدعاء nextLine من تمرين أقدم داخل الملف. احذف ذلك الاستدعاء وأبقِ الـ for مع break أعلاه. لا تحتاج تثبيت JDK جديد من أجل سطر شاشة خاطئ.

امشِ تشغيل break بالترتيب. تبدأ i عند 1. يكون if يساوي false، فيكتب println الرقم 1. تخزّن الخطوة 2. يكون if false مرة أخرى، فيكتب println الرقم 2. تخزّن الخطوة 3. الآن i == 3 يساوي true، فيعمل break وتنتهي for. لا يُطبع شيء لـ 3 أو 4 أو 5. حلقة بسيطة بلا break كانت ستطبع خمسة أسطر؛ قصّر break الحلقة بعد طباعتين. بعد break في تلك الدورة لا تعمل الخطوة ولا يُسأل الاختبار من جديد، لأن الحلقة انتهت أصلًا.

continue يتخطى دورة واحدة

غيّر الجسم حتى يحل continue محل break، وأبقِ println بعد الـ if:
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
continue;
}
System.out.println(i);
}
عندما يساوي i الرقم 3، يتخطى continue; بقية تلك الدورة — بما فيها println — وتنتقل for إلى الخطوة والاختبار التالي. الحلقة نفسها لا تنتهي. يجب أن تظهر الشاشة أربعة أسطر: 1، 2، 4، و 5. الفراغ هو المكان الذي كان يمكن أن يكون فيه 3.

continue عندما i يساوي 3

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

ترجم وشغّل مرة أخرى: javac Skip.java ثم java Skip. يجب أن ترى أربعة أسطر. لم تغيّر رأس for — فقط صار break هو continue. بعد أن ترى أربعة أسطر يمكنك إعادة break للرجوع إلى العرض الأول. النسختان صحيحتان في Java. تعلّمان حركتين مبكرتين مختلفتين داخل نفس شكل الحلقة.

اقرأ تشغيل continue مرة أخرى. تمر i على 1، 2، 3، 4، 5. لـ 1 و 2 يكون if يساوي false فتُطبع الأرقام. لـ 3 يتخطى continue قيمة println. لـ 4 و 5 تُطبع الأرقام مرة أخرى. ما زالت الحلقة تنتهي توقفها العادي عندما تصبح i تساوي 6. لا ينهي continue حلقة for أبدًا؛ يتخطى فقط بقية دورة واحدة. بعد continue ما زالت for تشغّل خطوتها i = i + 1، فيتقدم العداد حتى لو لم تطبع تلك الدورة شيئًا.

📊 الأداة والشاشة

الأداة عند i == 3 الشاشة
break 1 ثم 2
continue 1 ثم 2 ثم 4 ثم 5

استخدم الجدول تحققًا بعد تشغيل، لا بدلًا منه. يترك break سطرين. يترك continue أربعة أسطر مع غياب 3. إذا ظهر 3 وما زلت تقصد continue، فغالبًا println فوق الـ if — انقل println تحت continue حتى يصل التخطي إليه. أصلِح الترتيب بدل إعادة تثبيت Java.

قواعد تُبقي الأداتين واضحتين

ينتمي break و continue إلى داخل جسم حلقة. كتابة break; وحدها في main بلا for أو while محيط تجعل javac يفشل. الأمر نفسه لـ continue;. في هذه الصفحة يختار if اللحظة: عندما يساوي i الرقم 3. يمكنك لاحقًا كتابة اختبارات أخرى؛ العروض تبقي i == 3 حتى يسهل رؤية تغيّر الشاشة.

break ليس continue. ينهي break الحلقة. يتخطى continue دورة واحدة ويبقى داخل الحلقة. ليست أي منهما break الخاصة بصفحة switch بالطريقة التي رأيتها هناك — هنا البنية المحيطة هي for. لا تترك while من صفحة Pulse يعدّ فقط، أو for من صفحة Beat بلا if، داخل نفس main ثم تتساءل لماذا ما زالت كل الأرقام من 1 إلى 5 تُطبع. يجب أن يحمل main في هذه الجلسة الـ for مع الـ if و break أو continue.

خلط شائع هو طباعة الكلمة نفسها: System.out.println("break");. ذلك يكتب أحرف break. لا يوقف حلقة. خلط آخر هو وضع println(i); قبل الـ if الذي يحمل continue، فيُطبع 3 ثم يعمل continue ولا يبقى شيء لتخطيه. أبقِ println بعد الـ if في العرضين. إذا كتبت continue بلا حلقة محيطة، يبلغ javac عن خطأ؛ الأمر نفسه لـ break وحدها خارج أي حلقة. في شكل هذا الدرس لا معنى لهاتين الكلمتين إلا داخل جسم حلقة.

ما يمكنك فعله الآن

يمكنك وضع break داخل حلقة لتخرج مبكرًا، أو continue لتخطّي دورة واحدة وتستمر. يمكن لـ if أن يختار متى يحدث ذلك. الصفحة التالية هي for-each؛ هناك تمشي الحلقة كل قيمة في مجموعة دون أن تكتب البداية والاختبار والخطوة يدويًا بنفس الطريقة.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
5
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى