✨ تخطي التكرارات بذكاء مع جملة Continue في JavaScript
في دروس الحلقات التكرارية (Loops)، تعلمنا كيف نكرر تنفيذ كتلة من التعليمات. لكن ماذا لو أردنا في إحدى المرات أن نقفز على تكرار معين وننتقل مباشرة إلى التكرار التالي؟ هنا يأتي دور البطل الخفي: جملة continue. في هذا الدرس، سنتعلم كيف نستخدم هذه الأداة القوية للتحكم الدقيق في تدفق حلقاتنا التكرارية.
🔍 ما هي جملة Continue؟
ببساطة شديدة، جملة continue هي أمر نضعه داخل حلقة تكرارية (مثل for أو while) لتخطي التكرار الحالي والانتقال فوراً إلى التكرار التالي.
عندما يصل تنفيذ الكود إلى continue، فإنه:
- يتوقف عن تنفيذ بقية التعليمات الموجودة داخل كتلة التكرار الحالي.
- يقفز مباشرة إلى بداية التكرار التالي (مما يعني تحديث العداد في حالة
for، أو إعادة التحقق من الشرط في حالةwhile).
فكر فيها كمنظم للحفل يقول: "هذا المشترك، تخطوه وانتقلوا للذي يليه مباشرة!" 🎤
📝 الشكل العام لاستخدام Continue
for (let i = 0; i < 10; i++) {
// بعض التعليمات هنا...
if (شرط معين) {
continue; // إذا تحقق الشرط، تخطى هذا التكرار
}
// هذه التعليمات لن تنفذ إذا تم استدعاء continue
console.log("التكرار رقم:", i);
}
نلاحظ أن continue تُستخدم عادةً داخل تعليمة if، لأننا نريد تخطي التكرار فقط عند تحقق شرط محدد.
💡 مثال عملي 1: طباعة الأرقام الفردية فقط
لنفترض أننا نريد طباعة الأرقام من 1 إلى 10، ولكن فقط الأرقام الفردية. بدلاً من كتابة شرط معقد داخل console.log، يمكننا استخدام continue لتخطي الأرقام الزوجية.
// هذا الكود يطبع الأرقام الفردية من 1 إلى 10
for (let number = 1; number <= 10; number++) {
// إذا كان العدد زوجياً (يقبل القسمة على 2 بدون باقي)
if (number % 2 === 0) {
continue; // تخطى هذا التكرار (الرقم الزوجي)
}
// هذه السطر تنفذ فقط للأرقام الفردية
console.log("Odd number:", number);
}
النتيجة:
Odd number: 1
Odd number: 3
Odd number: 5
Odd number: 7
Odd number: 9
كيف عمل الكود؟
- عندما
number = 2، تحقق الشرط(2 % 2 === 0)، فنفذتcontinueوتخطتconsole.log، وانتقلت مباشرة للتكرار التالي حيثnumber = 3. - عندما
number = 3، لم يتحقق الشرط، فتم تنفيذconsole.logوطباعة الرقم.
💡 مثال عملي 2: تخطي عناصر محددة في مصفوفة
لنقم بمعالجة قائمة من المنتجات، ونريد تخطي منتج معين (مثلاً "خالي من المخزون").
let products = ["Banana", "Orange", "Mango", "Apple", "Grapes"];
console.log("The available products are:");
for (let i = 0; i < products.length; i++) {
// إذا كان اسم المنتج هو "خالي من المخزون"، فتخطاه
if (products[i] === "Mango") {
continue;
}
console.log("- " + products[i]);
}
النتيجة:
The available products are:
- Banana
- Orange
- Apple
- Grapes
لاحظ كيف تم تخطي العنصرين غير المرغوب فيهما بسلاسة دون إيقاف الحلقة كاملة.
⚠️ الفرق الحيوي: Continue vs Break
من المهم جداً فهم الفرق بين continue وأختها break التي تعلمناها سابقاً:
| الميزة | break 🛑 |
continue ⏭️ |
|---|---|---|
| الوظيفة | توقف الحلقة التكرارية كلياً وتخرج منها. | تخطي التكرار الحالي فقط والانتقال للتالي. |
| التشبيه | إلغاء الحفل بالكامل. | تخطي أغنية واحدة والمتابعة للحفل. |
| متى نستخدمها | عندما نجد ما نبحث عنه ولا نحتاج لاستكمال باقي التكرارات. | عندما نريد تجاهل حالة معينة لكن نستمر في البحث أو المعالجة. |
مثال يوضح الفرق:
// مثال break: توقف عند العثور على الرقم 5
for (let i = 1; i <= 10; i++) {
if (i === 5) {
console.log("وجدت الرقم 5، سأتوقف!");
break; // توقف كامل عن الحلقة
}
console.log(i);
}
// الناتج: 1, 2, 3, 4, ثم الجملة وتوقف.
// مثال continue: تخطى الرقم 5 فقط
for (let i = 1; i <= 10; i++) {
if (i === 5) {
console.log("سأتخطى الرقم 5!");
continue; // تخطى التكرار الحالي فقط
}
console.log(i);
}
// الناتج: 1, 2, 3, 4, الجملة, 6, 7, 8, 9, 10
🧪 تمرين سريع: جمع الأرقام الموجبة
جرب كتابة هذا الكود بنفسك. المهمة: لدينا مصفوفة تحتوي على أرقام موجبة وسالبة. نريد جمع الأرقام الموجبة فقط.
let numbers = [10, -5, 3, -8, 15, -1];
let sumOfPositives = 0;
for (let i = 0; i < numbers.length; i++) {
// (تلميح: استخدم `continue` إذا كان الرقم أقل من الصفر)
if (numbers[i] < 0) {
continue; // تخطى الأرقام السالبة
}
sumOfPositives = sumOfPositives + numbers[i]; // اجمع الرقم الموجب
}
console.log("مجموع الأرقام الموجبة هو:", sumOfPositives); // يجب أن يكون الناتج 28
🎯 ماذا سنتعلم في الدرس القادم؟
أصبحت الآن تتحكم في حلقاتك التكرارية بدقة عالية! يمكنك إيقافها بـ break أو تخطي تكراراتها بـ continue. ولكن، هل تعلم أن JavaScript تقدم طريقة أكثر حداثة واختصاراً للتعامل مع المصفوفات؟ في الدرس القادم، سننتقل إلى عالم طرق المصفوفات (Array Methods) وسنبدأ بأحد أكثرها فائدة وانتشاراً: .forEach(). ستتعلم كيف تقوم بعمل حلقة تكرارية على مصفوفة وتنفذ دالة على كل عنصر منها، بكتابة أقل وأكثر وضوحاً! استعد لرفع مستوى كفاءة كودك. 🚀
🎓 اختبر نفسك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال