المسارات
/
Java
Java
/
المنهج
/
حلقات for-each
حل

حلقات for-each في Java

6 تمارين

نبذة عن حلقات for-each

توفّر حلقة for-each آلية لتنفيذ كتلة من الكود لكل عنصر في مجموعة. وتشير بعض الوثائق (مثل وثائق Oracle) إليها باسم حلقات for المحسّنة.

إليك الصياغة العامة:

for(declaration: collection) {
    body;
}

يعلن declaration المتغير المستخدم لحمل القيم المُسنَدة من المجموعة.

ويكون collection مصفوفة أو مجموعة تحمل القيم التي ستُسند إلى متغير الحلقة.

ويحتوي body على العبارات التي ستُنفَّذ مرة واحدة لكل قيمة في المجموعة.

على سبيل المثال:

char[] vowels = {'a', 'e', 'i', 'o', 'u'};

for(char vowel: vowels) {
    System.out.println(vowel);
}

وهذا ما يُخرجه:

a
e
i
o
u

بشكل عام، تُفضَّل حلقة for-each على حلقة for للأسباب التالية:

  • تضمن حلقة for-each التكرار على جميع القيم.
  • حلقة for-each أكثر تصريحية، بمعنى أن الكود يعبّر عن ماذا يفعل بدلًا من كيف يفعله.
  • حلقة for-each محكمة ضد الأخطاء، أما مع حلقات for فيسهل الوقوع في خطأ الفرق بمقدار واحد (فكّر في استخدام < مقابل <=).
  • تعمل حلقة for-each مع جميع أنواع المجموعات، بما فيها تلك التي لا تدعم استخدام فهرس للوصول إلى العناصر (مثل Set).
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة

تعلّم حلقات for-each