في هذا الدرس 5تصفّح المواضيع
عند البحث عن طلب محدد وسط عشرة آلاف سجل والعثور عليه في العنصر الخامس، لا داعي لإهدار وقت المعالج في فحص آلاف العناصر المتبقية؛ فكتابة التعليمة break; داخل أي حلقة تنهيها على الفور وتنتقل مباشرةً إلى أول سطر برمجي يلي قوس إغلاق الحلقة.
const codes = ['A10', 'B20', 'TARGET', 'C30', 'D40'];
let checked = 0;
for (const code of codes) {
checked++;
if (code === 'TARGET') { break; }
}
document.getElementById('out').textContent = `Found after checking ${checked} of ${codes.length} items`;
بخلاف break، لا توقف تعليمة continue; الحلقة بالكامل؛ بل تتخطى فقط بقية الأسطر في الدورة الحالية وتقفز لبدء الدورة التالية (فتنفذ خطوة الزيادة تلقائياً في حلقة for، بينما تنتقل مباشرةً لفحص الشرط في حلقة while).
يتيح الجمع بين continue (لتجاهل المدخلات الفارغة أو السالبة في مطلع الدورة) وbreak (للتوقف عند بلوغ السقف المطلوب) كتابة كود مسطح ونظيف دون تداخلات شرطية معقدة:
| التعليمة | تأثيرها على الدورة الحالية | تأثيرها على الدورات المتبقية |
|---|---|---|
continue; | تتخطى بقية أسطر الدورة الحالية | تستمر الحلقة طبيعياً مع العنصر التالي |
break; | تقطع الدورة الحالية فوراً | تلغي جميع الدورات المتبقية وتنهي الحلقة |
const payments = [40, -10, 0, 75, 50, 90];
let validTotal = 0;
for (const amount of payments) {
if (amount <= 0) { continue; }
validTotal += amount;
if (validTotal >= 100) { break; }
}
document.getElementById('out').textContent = `Reached target at: ${validTotal} USD`;
عند تداخل حلقتين معاً (مثل المرور على صفوف جدول وأعمدته)، فإن تعليمة break; أو continue; غير المسماة تؤثر حصراً على الحلقة الداخلية المباشرة المحيطة بها، بينما تواصل الحلقة الخارجية دورتها التالية.
تسمح JavaScript بوضع اسم متبوع بنقطتين رأسيتين قبل الحلقة الخارجية مثل outerGrid: for (...) لكي تتمكن الحلقة الداخلية من كتابة break outerGrid; والخروج من الحلقتين معاً دفعةً واحدةً عند البحث في مصفوفة ثنائية الأبعاد.
تُستخدم اللافتات في نطاق ضيق مع الحلقات المتداخلة فقط؛ وفي البرامج الأكبر ستتعلم في الفصل القادم تقسيم المنطق داخل دوال مستقلة تمنحك قراءة أوضح.
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
اختتمت فصل الحلقات بإتقان الإنهاء المبكر عبر break، وتخطي الدورة الحالية عبر continue، وتنقية البيانات، ونطاق الحلقات المتداخلة واللافتات المسماة. الخطوة التالية: انتقل الآن إلى الفصل الثامن «الدوال في JavaScript» لتغليف الأكواد في وحدات قابلة لإعادة الاستخدام!
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات3
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 break Statement تعليمة الإنهاء الفوري break
- تنهي الحلقة أو كتلة switch المحيطة بها فوراً وتنقل التنفيذ إلى أول تعليمة تليها.
- للمراجعة
- 02 continue Statement تعليمة تخطي الدورة continue
- تتجاوز الأسطر المتبقية في الدورة الحالية فقط وتنتقل مباشرةً لبدء الدورة التالية للحلقة.
- للمراجعة
- 03 Labeled Statement اللافتة البرمجية المسماة Label
- معرّف متبوع بنقطتين يوضع قبل الحلقة الخارجية لتمكين break من الخروج من حلقتين متداخلتين معاً.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات1
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 2D 2D
- Two-Dimensional Grid
- الشبكات ثنائية الأبعاد من الصفوف والأعمدة التي يقتصر فيها break العادي على الحلقة الداخلية.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
بدّل بين التبويب الأول ("1 2") والتبويب الثاني ("1 2 4 5") في المحاكي لترسيخ الفرق السلوكي بدقة.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.