حلقتك التكرارية هي قطار يسير على مسار ثابت، ويؤدي مهمته بدقة من المحطة 1 إلى المحطة 100. ولكن ماذا يحدث إذا وجدت وجهتك المنشودة في المحطة رقم 5؟ هل ستترك القطار يكمل رحلته العبثية حتى النهاية؟ وماذا لو كانت المحطة 42 مشتعلة بالنيران؟ هل ستتوقف فيها على أي حال؟ معظم المبرمجين يبنون قطارات صلبة لا تستجيب للظروف. اليوم، ستتعلم كيف تثبت “مكابح الطوارئ” (break) و “زر تخطي المحطة” (continue). هذه ليست مجرد كلمات مفتاحية؛ إنها أدوات التحكم التي تحول حلقاتك من آلات غبية إلى وكلاء أذكياء ومتجاوبين.
أين نحن الآن؟ وماذا بعد؟
لقد أنهينا تقريباً الجزء الثالث: التحكم في مسار البرنامج. أتقنت اتخاذ القرارات (if, switch) والتكرار المنظم (for) وغير المنظم (while).
الآن، سنضيف اللمسة النهائية للتحكم الدقيق. break و continue هما أدوات احترافية تمنحك سيطرة مطلقة على تدفق حلقاتك. فهم هذه الأدوات هو ما يفصل بين الكود الذي “يعمل فقط” والكود الفعال والآمن الذي يستجيب بذكاء للبيانات غير المتوقعة. هذا الدرس هو خطوتك الأخيرة قبل الانتقال إلى تنظيم البيانات في هياكل أكبر.
ماذا ستتقن في هذا الدرس؟
استخدام الكلمة المفتاحية break لإيقاف الحلقة التكرارية بشكل فوري.
استخدام الكلمة المفتاحية continue لتخطي الدورة الحالية والانتقال إلى التالية.
فهم متى ولماذا تختار break على continue والعكس.
تطبيق هذه المفاهيم في سيناريوهات عملية مثل البحث عن عنصر أو تجاهل بيانات غير صالحة.
الفصل الأول: القطار الذي لا يتوقف
1
مشكلة الكفاءة المهدورة
لنفترض أن لدينا مهمة بسيطة: البحث عن أول رقم يقبل القسمة على 7 في نطاق من 1 إلى 100. يمكننا كتابة حلقة for للقيام بذلك.
اضغط على "تشغيل" لعرض النتيجة هنا.
رسائل النظام ستظهر هنا.
جاهز
السطر 1, العمود 1
المشكلة واضحة: لقد وجدنا الرقم 7 في الدورة السابعة، لكن القطار استمر في السير حتى المحطة 100، مستهلكاً وقتاً وقوة معالجة بلا طائل. كيف يمكننا سحب مكابح الطوارئ بمجرد إنجاز المهمة؟
الفصل الثاني: مكابح الطوارئ (break)
2
إيقاف كل شيء الآن!
الكلمة المفتاحية break هي مكابح الطوارئ. عندما ينفذها البرنامج، فإنها تكسر (breaks) الحلقة الحالية فوراً وتقفز إلى أول سطر كود بعد الحلقة.
break
هي كلمة مفتاحية تستخدم للخروج الفوري من حلقة تكرارية (for, while, do-while) أو من جملة switch. إنها توقف التنفيذ بشكل كامل وتنقله إلى خارج كتلة الكود الحالية.
لنُصلح مثالنا السابق باستخدام break.
اضغط على "تشغيل" لعرض النتيجة هنا.
رسائل النظام ستظهر هنا.
جاهز
السطر 1, العمود 1
الآن، بمجرد العثور على الرقم 7، تتوقف الحلقة فوراً. هذا هو الكود الفعال!
الفصل الثالث: زر تخطي المحطة (continue)
3
تجاهل هذه واستمر
الآن، لنتخيل مهمة مختلفة. نريد طباعة جميع الأرقام من 1 إلى 10، ولكن نريد تخطي الأرقام 4 و 7 لأنها “محطات غير مرغوب فيها”. هنا لا نريد إيقاف القطار بالكامل، بل فقط أن نأمره بتخطي هاتين المحطتين والمتابعة إلى المحطة التالية.
هذه هي وظيفة continue.
continue
هي كلمة مفتاحية تتسبب في إيقاف الدورة (Iteration) الحالية للحلقة فوراً، والقفز مباشرة إلى بداية الدورة التالية. إنها لا تخرج من الحلقة، بل تتخطى فقط ما تبقى من الكود في الدورة الحالية.
اضغط على "تشغيل" لعرض النتيجة هنا.
رسائل النظام ستظهر هنا.
جاهز
السطر 1, العمود 1
احذر مع حلقة while
عند استخدام continue داخل حلقة while، تأكد من أن خطوة تحديث العداد (مثل i++) تحدث قبل continue. إذا كانت بعدها، فقد يتسبب continue في تخطيها، مما يؤدي إلى حلقة لا نهائية!
الفصل الرابع: غرفة التحكم (break ضد continue)
4
اختيار الأداة المناسبة
كلاهما يتحكم في تدفق الحلقة، ولكن بطرق مختلفة تمامًا.
استخدم break (مكابح الطوارئ) عندما:
تنجز المهمة: لقد وجدت ما تبحث عنه ولا داعي للاستمرار.
يحدث خطأ فادح: تم إدخال قيمة غير صالحة ولا يمكن مواصلة المعالجة.
شعارها: “أوقف كل شيء، لقد انتهينا هنا.”
استخدم continue (زر تخطي المحطة) عندما:
تريد تجاهل عنصر معين: البيانات الحالية غير صالحة أو لا تفي بالمعايير، ولكن يجب معالجة بقية البيانات.
تريد تطبيق منطق خاص على بعض العناصر: قم بالمنطق الخاص ثم استخدم continue لتخطي المنطق العام لبقية الدورة.
شعارها: “هذه الحالة استثنائية، تجاهلها وانتقل إلى التالية.”
الحلقة ستعمل من 0 إلى 4. عندما تصل i إلى 2، سيتم تنفيذ continue، مما يتسبب في تخطي System.out.print(i) لتلك الدورة والقفز إلى الدورة التالية (i=3). لذلك، ستطبع الأرقام 0، 1، 3، و 4.
خلاصة رحلة اليوم
لقد قمت اليوم بترقية حلقاتك التكرارية من قطارات عمياء إلى مركبات ذكية ومستجيبة. أنت الآن تعرف كيف تسحب “مكابح الطوارئ” (break) لإنهاء رحلة مكتملة بكفاءة، وكيف تضغط على “زر تخطي المحطة” (continue) لتجاوز العقبات دون إيقاف المهمة بأكملها. هذه الأدوات الدقيقة تمنحك القدرة على كتابة كود ليس فقط صحيحًا، بل أيضًا قويًا وفعالًا في مواجهة بيانات العالم الحقيقي الفوضوية.
تنظيم البيانات في هياكل
لقد أتقنت الآن تدفق التحكم بشكل كامل. أنت جاهز للخطوة الكبيرة التالية. ماذا لو كان لديك 1000 اسم أو 500 درجة؟ هل ستنشئ 1000 متغير؟ بالطبع لا. في الجزء القادم، سندخل عالم “هياكل البيانات”، بدءًا من أبسطها وأكثرها أهمية: المصفوفات (Arrays). سنتعلم كيف نخزن مجموعات من البيانات المتشابهة في متغير واحد منظم.