الحلقات في Java | for و while بشرح تفصيلي للغاية

16:00 دقائق مجاني
شرح الحلقات من الصفر: ما معنى التكرار؟ ولماذا نحتاجه؟ وكيف تعمل for و while؟ مع أمثلة وتمارين وأخطاء شائعة.

أحيانًا تحتاج تنفيذ نفس الأمر أكثر من مرة. على سبيل المثال: طباعة الأرقام من 1 إلى 10، أو المرور على قائمة أسماء، أو تكرار سؤال للمستخدم.

يمكنك أن تكتب أمر الطباعة 10 مرات يدويًا، لكن هذا غير منطقي وغير عملي. هنا تظهر أهمية الحلقات (Loops). الحلقة تعني: “كرّر تنفيذ هذا الجزء من الكود عدة مرات”.

حلقة for: عندما تعرف عدد مرات التكرار

حلقة for مناسبة عندما تعرف عدد المرات مسبقًا (مثلًا 5 مرات أو 10 مرات). شكلها العام:

for (بداية; شرط الاستمرار; خطوة التغيير) {
  // كود يتكرر
}

مثال: طباعة الأرقام من 1 إلى 5:

for (int i = 1; i <= 5; i++) {
  System.out.println("الرقم: " + i);
}

شرح سريع لما يحدث:

  • يبدأ المتغير i بقيمة 1.
  • يفحص الشرط: هل i <= 5؟ إذا نعم ينفّذ الكود داخل الحلقة.
  • بعد التنفيذ يزيد i بمقدار 1 بسبب i++.
  • تتكرر العملية حتى يصبح الشرط غير صحيح.

حلقة while: عندما لا تعرف عدد مرات التكرار مسبقًا

حلقة while مناسبة عندما تريد التكرار “طالما” شرط معيّن صحيح.

مثال: طباعة الأرقام من 1 إلى 5 باستخدام while:

int i = 1;

while (i <= 5) {
  System.out.println(i);
  i++;
}

لاحظ الفرق: في while أنت مسؤول عن زيادة المتغير داخل الحلقة. إذا نسيت i++ فقد تقع في حلقة لا تنتهي (وهذا خطأ شائع جدًا).

أمثلة واقعية بسيطة (لتثبيت الفكرة)

مثال 1: جمع الأرقام من 1 إلى 5:

int sum = 0;

for (int i = 1; i <= 5; i++) {
  sum = sum + i;
}

System.out.println("المجموع: " + sum);

مثال 2: العدّ التنازلي:

for (int i = 5; i >= 1; i--) {
  System.out.println("تبقى: " + i);
}

أخطاء شائعة في الحلقات وكيف تتجنبها

  • نسيان زيادة العداد داخل while يؤدي إلى حلقة لا تنتهي.
  • كتابة شرط خاطئ مثل i <= 5 مع بداية i = 10 دون قصد.
  • استخدام < بدل <= فيفوتك آخر رقم.
  • الخلط بين i++ و i--.

تمرين صغير لتتأكد أنك فهمت

جرّب بنفسك (حتى لو استغرق الأمر وقتًا):

  • اطبع الأرقام من 10 إلى 1.
  • احسب مجموع الأرقام من 1 إلى 100.
  • اطبع الأرقام الزوجية فقط من 1 إلى 20.

✅ بعد أن تعلّمت التكرار، سننتقل إلى مهارة مهمة جدًا: تنظيم الكود باستخدام الدوال (Methods).