حلقة for والتحكم في التكرار

تعديل
نسخ الدرس
تحميل الدرس

حلقة for والتحكم في التكرار

في الدرس السابق تعلمنا حلقات while و until. في هذا الدرس، سنتعلم حلقة for وكيفية التحكم في سير الحلقات باستخدام break و next.

حلقة for

حلقة for تُكرر الشيفرة لكل عنصر في نطاق (Range) أو مجموعة (Collection). هي طريقة أنيقة للتكرار عندما تعرف مسبقاً عدد التكرارات.

البنية الأساسية

مثال بسيط: العد من 1 إلى 5

الناتج:

فهم النطاقات (Ranges)

النطاق في روبي يُحدد مجموعة من القيم المتتالية:

النطاقالمعنىالقيم
1..5من 1 إلى 5 (شامل)1, 2, 3, 4, 5
1...5من 1 إلى 5 (غير شامل)1, 2, 3, 4
'a'..'e'من a إلى ea, b, c, d, e

الناتج:

أمثلة عملية مع for

مثال 1: طباعة جدول ضرب

الناتج:

مثال 2: جمع الأرقام

الناتج:

مثال 3: طباعة الحروف

الناتج:

التحكم في الحلقات

أحياناً نريد تغيير السير الطبيعي للحلقة. روبي توفر كلمتين مفتاحيتين للتحكم:

  • break - الخروج من الحلقة فوراً
  • next - تخطي التكرار الحالي والانتقال للتالي

break - الخروج من الحلقة

break يُنهي الحلقة فوراً ويخرج منها، حتى لو لم تنتهِ الشروط.

مثال: البحث عن رقم معين

الناتج:

لاحظ أن الحلقة توقفت عند 5 ولم تكمل حتى 10.

مثال: إيقاف عند حد معين

الناتج:

استخدام break مع while

الناتج:

next - تخطي التكرار الحالي

next يتخطى بقية الشيفرة في التكرار الحالي وينتقل مباشرة للتكرار التالي.

مثال: طباعة الأرقام الزوجية فقط

الناتج:

مثال: تخطي قيم معينة

الناتج:

مثال: معالجة البيانات مع تخطي الفارغة

الناتج:

الجمع بين break و next

يمكن استخدام كليهما في نفس الحلقة:

الناتج:

أمثلة عملية متقدمة

مثال 1: إيجاد الأعداد الأولية

الناتج:

مثال 2: طباعة مثلث من الأرقام

الناتج:

مثال 3: البحث عن مضاعفات مشتركة

الناتج:

مقارنة for مع while

الميزةforwhile
متى تستخدمعدد تكرارات معروفشرط غير محدد العدد
النطاقاتمثاليةتحتاج متغير عداد
القراءةأوضح للتكرار المحددأوضح للشروط المعقدة
المتغيريُعرَّف تلقائياًتحتاج تعريفه يدوياً

جدول ملخص التحكم في الحلقات

الأمرالوظيفةمتى تستخدمه
breakالخروج من الحلقة فوراًعند إيجاد القيمة المطلوبة أو تحقق شرط الإنهاء
nextتخطي التكرار الحاليلتجاهل قيم معينة والاستمرار

نصائح مهمة

  1. استخدم for للنطاقات المعروفة - أوضح وأقصر من while
  2. استخدم break للخروج المبكر - لتوفير الوقت عند إيجاد المطلوب
  3. استخدم next لتصفية القيم - أوضح من وضع الشيفرة في else
  4. احذر من break في حلقات متداخلة - يخرج فقط من الحلقة الداخلية
  5. فضّل each على for - في روبي الحديثة (سنتعلمها لاحقاً)

الأخطاء الشائعة

1. نسيان أن break يخرج من الحلقة الداخلية فقط

الناتج:

2. وضع next في المكان الخطأ

3. استخدام break بدلاً من next

تمرين: الأرقام الزوجية مع استثناءات

حان وقت التطبيق! في محرر الشيفرة على اليسار:

المطلوب: اكتب برنامجاً يطبع الأرقام الزوجية من 1 إلى 20، لكن:

  1. تخطَّ الرقم 6 (لا تطبعه)
  2. توقف عند الوصول للرقم 14 (اطبعه ثم توقف)

تلميحات:

  • استخدم for i in 1..20
  • استخدم next لتخطي الرقم 6
  • استخدم i % 2 == 0 للتحقق من الزوجية
  • استخدم break للتوقف بعد طباعة 14

الناتج المتوقع:

ملاحظة: لاحظ أن 6 غير موجود في الناتج (تم تخطيه)، والحلقة توقفت عند 14.


تذكّر: break للخروج، next للتخطي. استخدمهما بحكمة لكتابة شيفرة أكثر كفاءة!