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

break و continue

الحلقة يمكن أن تكمل كل دورة حتى النهاية — إلا إذا وجّهتها أنت. أحياناً وجدت الجواب وتريد التوقف. وأحياناً عنصر بلا فائدة وتريد تخطيه ثم المتابعة. break يخرج من الحلقة فوراً. continue ينتقل إلى الدورة التالية. نفس عائلات الحلقات التي تعرفها؛ كلمتان صغيرتان تغيّران مسار التنفيذ.

ماذا يفعل break؟

ينهي أقرب حلقة الآن. لا تُنفَّذ الدورات اللاحقة. ما يأتي بعد الحلقة في السكربت ما زال يعمل. فكّر: «انتهيت — اخرج.» شائع عند البحث عن أول تطابق دون الحاجة لمسح الباقي.

break مقابل continue

📊 توجيه الحلقة في منتصف الطريق

الكلمة التأثير متى تناسب
break اخرج من الحلقة الآن وجدت أول تطابق؛ لا تنتظر أكثر
continue تخطَّ بقية هذه الدورة وابدأ التالية تجاهل عنصراً سيئاً؛ أكمل المسح
لا شيء منهما كل دورة تنفّذ الجسم كاملاً كل العناصر تحتاج نفس المعالجة
بعد الحلقة الكود أسفل الحلقة ما زال يعمل break يخرج من الحلقة فقط لا من السكربت كله

اختر break عندما تصبح الدورات اللاحقة بلا فائدة. واختر continue عندما يجب أن تصمت دورة واحدة مع استمرار السير. لا تبدلهما — الخطأ يبدو «شبه صحيح» ويصعب اكتشافه.

break يوقف حلقة for

javascript
const nums = [2, 4, 7, 8];
let found = null;
for (let i = 0; i < nums.length; i++) {
if (nums[i] === 7) {
found = nums[i];
break;
}
}
console.log(found);

توقف عند العثور على تطابق

تفحص الحلقة 2 ثم 4 ثم 7. عند 7 تخزّن القيمة وتستدعي break. لا تُنفَّذ 8. قيمة found تصبح 7. بلا break كانت الحلقة ستكمل بعد معرفة الجواب.

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

javascript
for (let i = 1; i <= 5; i++) {
if (i % 2 === 0) {
continue;
}
console.log(i);
}

تخطَّ دورة وواصل

عندما يكون i زوجياً، يقفز continue إلى i التالي. يُتخطى سطر console.log لتلك الدورات. ترى 1 و3 و5. الحلقة لم تتوقف — مرّت فقط على الأعداد الزوجية.

break داخل while

javascript
let n = 1;
while (n < 20) {
if (n === 5) {
break;
}
console.log(n);
n = n + 1;
}

اخرج من while مبكراً

كان while سيستمر طالما n < 20. عند n === 5 يخرج break. طُبع 1–4. يناسب نمط «تابع حتى قاعدة توقف ثم اخرج» دون إكمال كل الدورات الممكنة.

continue مع for...of

javascript
const colors = ["red", "skip", "blue"];
for (const c of colors) {
if (c === "skip") {
continue;
}
console.log(c);
}

تخطَّ قيماً في for...of

for...of ما زال يمشي على القيم. continue يتجاهل "skip" ويطبع red ثم blue. فكرة التوجيه واحدة عبر for وwhile وfor...of — أقرب حلقة فقط.

بناء سطر مع التخطي

javascript
const parts = ["A", "x", "B", "x", "C"];
let msg = "";
for (const p of parts) {
if (p === "x") {
continue;
}
msg = msg + p;
}
console.log(msg);

صفِّ أثناء الدمج

كل "x" يُتخطى؛ تُضاف الحروف. النتيجة ABC. نفس عادة الدمج من دروس الحلقات السابقة — continue بوابة التصفية داخل المسير.

اعرض break و continue على الصفحة

امشِ على قائمة قصيرة، تخطَّ تسمية بـ continue، وتوقف مبكراً بـ break بعد علامة، واكتب النتيجة في الصفحة.

مسير صفحة مع تخطي وتوقف

html
<!DOCTYPE html>
<html>
<head>
<title>break / continue — page</title>
</head>
<body>
<p id="out">…</p>
<script>
const items = ["a", "skip", "b", "stop", "c"];
let line = "";
for (const item of items) {
if (item === "skip") {
continue;
}
if (item === "stop") {
break;
}
line = line + item + " ";
}
let box = document.getElementById("out");
box.textContent = "kept=" + line.trim();
</script>
</body>
</html>

الصفحة تعرض kept=a b. تُجاهل "skip"؛ وتنهي "stop" الحلقة قبل "c". غيّر المصفوفة، حدّث الصفحة، واقرأ السطر الجديد. الدرس التالي يبدأ الدوال — كتل عمل تستدعيها بالاسم.

جرّبها بنفسك

  1. في for على [3, 9, 1] نفّذ break عند القيمة 9 واحفظها.
  2. اطبع الأعداد الفردية فقط من 1 إلى 6 باستخدام continue على الزوجية.
  3. في while توقف بـ break عندما يصل العداد إلى 3.
  4. مع for...of على ["ok", "no", "ok"] مرّ بـ continue على "no".
  5. ادمج ["1", "-", "2"] إلى 12 بتخطي "-".
  6. في عرض HTML غيّر المصفوفة فقط، حدّث، واقرأ kept=.

أخطاء شائعة

  • الاعتقاد أن continue يخرج من الحلقة كلها (ذلك دور break)
  • وضع عمل إضافي بعد break في نفس الدورة — لن يُنفَّذ أبداً
  • في while استخدام continue دون تحديث العداد أولاً — خطر حلقة لا نهائية
  • استخدام break عندما أردت فقط تخطي عنصر واحد
  • توقع أن break يغادر السكربت كله — يخرج من أقرب حلقة فقط

خلاصة

  • break — اخرج من الحلقة الآن؛ لا تُنفَّذ الدورات اللاحقة
  • continue — تخطَّ بقية هذه الدورة؛ ابدأ التالية
  • يعمل في for وwhile وfor...of
  • أنماط البحث غالباً تستخدم break؛ أنماط التصفية غالباً continue
  • الكود بعد الحلقة ما زال يعمل بعد break
  • التالي: الدوال — سمِّ كتلة عمل واستدعِها

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

جاهز للبدء

اختبر معرفتك

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

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

📝 التعليمات

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