من الدراسة السابقة للحلقات، نعلم أنه افتراضيًا، ستخرج الحلقة تلقائيًا عندما تكون نتيجة التعبير خاطئة، وإلا ستستمر الحلقة. في بعض الحالات، لا نحتاج إلى الانتظار حتى تخرج الحلقة تلقائيًا، ولكن يمكننا الخروج من الحلقة بشكل فعال. توفر JavaScript عبارتين، كسر ومتابعة، للخروج من الحلقة والخروج (تخطي) من الحلقة الحالية.
1. عبارة المتابعة
يتم استخدام عبارة المتابعة لتخطي هذه الحلقة وتنفيذ الحلقة التالية. عند مواجهة عبارة المتابعة، سيقوم البرنامج على الفور بإعادة اختبار التعبير الشرطي. إذا كانت نتيجة التعبير صحيحة، فستبدأ الحلقة التالية. إذا كانت نتيجة التعبير خاطئة، فسيتم الخروج من الحلقة.
[مثال 1] استخدم عبارة المتابعة للانتقال خارج حلقة for:
<script type="text/javascript"> لـ (var i = 1; i < 10; i++) { إذا (أنا % 2 != 0) { يكمل؛ } console.log(i); } </script>
التحليل:
يمكن تكرار عبارة for (var i = 0; i < 10; i++){}
للحصول على جميع الأرقام بين 1 و10.
ويتم استخدام عبارة if(i % 2 != 0)
لتحديد قيمة i هل يمكن القسمة على 2؟ إذا لم يكن الأمر كذلك، فإن القيمة الموجودة في ()
صحيحة ويتم تنفيذ عبارة continue;
في نص الحلقة، استخدم عبارة if(i % 2 == 0)
لإصدار حكم إذا كان من الممكن تقسيم قيمة i
بالتساوي على 2، فاستخدم " console.log(i);
" لإخراج القيمة لا يمكن تقسيم i
بالتساوي على 2، قم بتشغيل عبارة continue;
، واقفز خارج هذه الحلقة (بدون إخراج)، وقم بتنفيذ الحلقة التالية.
نتيجة الإخراج:
2. بيان الاستراحة
يتم استخدام عبارة الاستراحة للقفز من بنية بناء الجملة الحالية، ويمكنها إنهاء كود جسم الحلقة والقفز من الحلقة الحالية على الفور، وتنفيذ التعليمات البرمجية بعد الحلقة (إن وجدت).
الفرق بين Break و continue هو أن عبارة continue تنهي الحلقة الحالية فقط، بينما تنهي عبارة Break تنفيذ الحلقة بأكملها.
إذا واصلنا استخدام الكود الموجود في المثال 1 أعلاه واستبدلنا continue;
بـ break;
ما الناتج؟
<نوع البرنامج النصي = "نص/جافا سكريبت"> لـ (var i = 1; i < 10; i++) { إذا (أنا % 2 != 0) { استراحة؛ } console.log(i); } </script>
الجواب هو: لا شيء يخرج . لماذا يحدث هذا؟ دعونا نحللها:
في بداية حلقة forx، i=1
، هل 1 أقل من 10؟ بالطبع، يبدأ تنفيذ عبارة if(i % 2 != 0)
في نص الحلقة،
فهل يمكن 1 أن تقسم 2؟ من الواضح أنه لا يمكن ذلك، لذلك إذا كانت القيمة الموجودة في ()
صحيحة، فسيتم تنفيذ عبارة " break;
" في if، والقفز من الحلقة بأكملها مباشرةً، ولن تكون هناك فرصة لتنفيذ " console.log(i);
" إفادة.
3. حلقات متداخلة:
تجدر الإشارة إلى أن كلا break
continue
صالحان فقط للحلقة الحالية. إذا كان لدينا حلقات متداخلة، علينا أن نكون حذرين. دعونا نلقي نظرة على المثال التالي:
for (let i = 0; i < 5; i++) { إذا (i % 2 == 0) تابع؛ لـ (دع j = 0; j < 5; j++) { إذا (ي == 2) استراحة؛ console.log(`i = ${i}, j = ${j}`); } }
لدينا هنا حلقتان، تم تنفيذ كل منهما 5 مرات (0~4). عندما يكون i رقمًا زوجيًا، تتخطى الحلقة الخارجية الحلقة الحالية وتنفذ الحلقة التالية. وهذا يعني أنه فقط عندما يكون i 1 أو 3، سيتم تنفيذ الحلقة الداخلية.
تنتهي الحلقة الداخلية طالما أن قيمة j هي 2. لذلك، j لديه فقط 0 و 1.
النتيجة النهائية هي كما يلي:
4. علامات JavaScript
بدءًا من JavaScript 1.2، يمكن استخدام العلامات جنبًا إلى جنب مع Break والاستمرار في التحكم في تنفيذ البرنامج بشكل أكثر دقة.
تختلف العلامات في JavaScript عن العلامات في HTML. العلامة في JavaScript عبارة عن معرف (يشبه اسم المتغير) متبوعًا بنقطتين:. يمكن الإعلان عن علامات JavaScript قبل أي عبارة أو كتلة تعليمات برمجية، واستخدامها جنبًا إلى جنب مع الفاصل أو الاستمرار في القفز من حلقة معينة ليست الحلقة الخارجية إذا كنت تستخدم الفاصل مع التسميات، فيمكنك الخروج من مستويات متعددة من الحلقات في وقت واحد.
نموذج التعليمات البرمجية كما يلي:
<script type="text/javascript"> document.write("ابدأ الحلقة!<br />"); الحلقة الخارجية: // حدد تسمية لـ (var i = 0; i < 5; i++) { document.write("الحلقة الخارجية:" + i + "<br />"); حلقة داخلية: // تحديد تسمية لـ (var j = 0; j < 5; j++) { if (j > 3)break; // الخروج من الحلقة الداخلية if (i == 2) Break insideloop; document.write الحلقة الخارجية ("الحلقة الداخلية: " + j + "<br />")؛ } } document.write("نهاية الحلقة!<br />"); </script>
ملاحظة: لا يمكن أن يكون هناك سطر جديد بين الفاصل أو المتابعة والتسمية. بالإضافة إلى ذلك، لا يمكن أن يظهر أي رمز آخر بين اسم التسمية والحلقة المقترنة.
[التعلم الموصى به: البرنامج التعليمي المتقدم لـ JavaScript]
ما ورد أعلاه هو المحتوى التفصيلي لتعلم حلقة JS: عبارات القطع والمتابعة للقفز من الحلقة لمزيد من المعلومات، يرجى الانتباه إلى المقالات الأخرى ذات الصلة على موقع PHP الصيني!