لكل حلقة في Java

⚡ ملخص ذكي

لكل حلقة في Java تُعدّ حلقة for-each شكلاً مُبسّطاً من حلقة for، وتُستخدم للتنقل بين عناصر المصفوفات والقوائم دون الحاجة إلى عدّاد أو فهرس. يشرح هذا المورد صيغة for-each، ويقارنها بحلقة for التقليدية، ويعرض مثالاً عملياً كاملاً مع الناتج المتوقع.

  • 🔁 الغرض: تقوم حلقة for-each بالتكرار على كل عنصر من عناصر المصفوفة أو القائمة بشكل مباشر، مما يقلل من حجم الكود.
  • 🧮 لا يوجد عداد: على عكس حلقة التكرار التقليدية، لا تحتاج حلقة التكرار for-each إلى فهرس أو شرط أو زيادة.
  • 🧩 بناء الجملة: قم بتعريف متغير مؤقت يتطابق نوعه مع المجموعة، ثم قم بتعريف المجموعة المراد تكرارها.
  • 🇧🇷 مقارنة: يوضح المثال نفس الناتج من حلقة تعتمد على العداد وحلقة for-each.
  • ⚠️ على سبيل الحصر: لا تعطي حلقة for-each أي فهرس، لذلك لا يمكنها تعديل العناصر الأساسية بسهولة.

لكل حلقة في Java

Java لكل صفيف

تُعدّ حلقة التكرار "For-Each" شكلاً آخر من أشكال حلقة "for" المستخدمة للتنقل بين عناصر المصفوفة. تُقلّل حلقة "For-Each" حجم الكود بشكل ملحوظ، ولا تستخدم الفهرس، أو بالأحرى العداد، داخل الحلقة.

بناء الجملة:

for (<DataType of array/List> <Temp variable name> : <Array/List to be iterated>) {
    System.out.println();
    // Any other operation can be done with this temp variable.
}

حلقة/تكرار مصفوفة في Java

دعنا نأخذ مثالاً باستخدام مصفوفة من سلاسل تريد تكرارها دون استخدام أي عدادات. ضع في اعتبارك مصفوفة من سلاسل arrData تم تهيئة هذه المصفوفة على النحو التالي:

String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};

على الرغم من أنك قد تعرف طرقًا مثل العثور على حجم الملف مجموعة ثم التكرار عبر كل عنصر من عناصر المصفوفة باستخدام حلقة for التقليدية (العداد، الشرط، والزيادة)، نحتاج إلى نهج أكثر كفاءة لا يستخدم أي عداد من هذا القبيل.

هذا هو النهج التقليدي للحلقة "for":

for (int i = 0; i < arrData.length; i++) {
    System.out.println(arrData[i]);
}

يمكنك أن ترى استخدام العداد ثم استخدامه كمؤشر للمصفوفة. Java يوفر طريقة لاستخدام حلقة "for" التي ستتكرر خلال كل عنصر من عناصر المصفوفة.

إليكم رمز المصفوفة التي قمنا بتعريفها سابقاً:

for (String strTemp : arrData) {
    System.out.println(strTemp);
}

يمكنك ملاحظة الفرق بين الحلقات. لقد انخفض حجم الكود بشكل ملحوظ. كما أنه لا يتم استخدام الفهرس، أو بالأحرى العداد، في الحلقة. تأكد من أن نوع البيانات المُعلن عنه في حلقة for-each يطابق نوع بيانات... ArrayList أنك تكرر.

مثال على حلقة التكرار لكل عنصر

هنا نرى الفصل بأكمله وهو يوضح الشرح أعلاه:

class UsingForEach {
  public static void main(String[] args) {
    String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};
    //The conventional approach of using the for loop
    System.out.println("Using conventional For Loop:");
    for(int i=0; i< arrData.length; i++){
      System.out.println(arrData[i]);
    }
    System.out.println("\nUsing Foreach loop:");
    //The optimized method of using the for loop - also called the foreach loop
    for (String strTemp : arrData){
      System.out.println(strTemp);
    }
  }
}

تكرار مصفوفة في Java

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

Using conventional For Loop:
Alpha
Beta
Gamma
Delta
Sigma

Using Foreach loop:
Alpha
Beta
Gamma
Delta
Sigma

الأسئلة الشائعة

نعم. يمكن للمساعدين المدعومين بالذكاء الاصطناعي إعادة هيكلة الحلقات القائمة على الفهرس إلى حلقات for-each حيث لا يكون الفهرس ضروريًا. مع ذلك، ينبغي عليك مراجعة الحالات التي تعتمد على الفهرس لتحديد الموضع أو تعديل العنصر.

غالباً ما تقترح أدوات الذكاء الاصطناعي استخدام حلقة for-each لتحسين سهولة القراءة عندما يكون الفهرس غير مستخدم، بينما تحافظ علىping الحلقات المفهرسة حيث يكون لموقع العنصر أو تعديله أهمية. يعتمد الاختيار على المهمة المحددة.

تستخدم حلقة التكرار التقليدية (for loop) عدادًا وفهرسًا للتحكم في التكرار. أما حلقة التكرار (for-each loop) فتُكرر كل عنصر مباشرةً دون عداد، مما يُحسّن من سهولة القراءة ولكنه لا يُوفر فهرسًا للوصول إلى العناصر.

لا يؤدي تغيير متغير الحلقة إلى تحديث عنصر المصفوفة الأساسي، لأنه يحتوي على نسخة من القيمة. لتعديل العناصر في مكانها، استخدم حلقة for تقليدية مع فهرس.

تلخيص هذه التدوينة بـ: