تخطَّ إلى المحتوى

for-each

حلقة for-each for-each

for-each (الصيغة المختصرة) تمرّ على كل عنصر في مصفوفة أو مجموعة مباشرة بلا فهرس.

الصيغة المختصرة for (Type item : collection) أبسط وأأمن من الحلقة العادية لأنها تمنع أخطاء الفهارس. لكنها لا تمنحك الوصول للفهرس — لو تحتاج الفهرس، استخدم for العادية أو `IntStream.range`.

الصياغة

for (Type item : collection) {
    // مع كل عنصر
}

📄 مثال

String[] fruits = {"تفاح", "موز", "برتقال"};

for (String fruit : fruits) {
    System.out.println(fruit);
}

// مع ArrayList:
ArrayList<Integer> nums = new ArrayList<>(List.of(1, 2, 3));
for (int n : nums) {
    System.out.println(n);
}

أهم النقاط

العنصرالوظيفة
for (T item : arr)تمرير على كل عنصر بدون فهرس — أبسط وأأمن
limitationلا تمنحك الفهرس الحالي، ولا تسمح بالتعديل أثناء المرور

💡 نصائح عملية

  • استخدمها دائمًا بدل for بالفهرس عندما لا تحتاج للفهرس
  • لا تعدّل المصفوفة أثناء المرور — قد تسبب ConcurrentModificationException مع المجموعات

⚠️ أخطاء شائعة

  • التعديل على العنصر في for-each لا يُغيّر المصفوفة الأصلية — العنصر نسخة مؤقتة
  • 尝试 الوصول للفهرس في for-each — غير ممكن مباشرة

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.