حلقات جافا

حلقات جافا
جربه على ممارسة GfG تقدم

تسمح الحلقات في البرمجة بتشغيل مجموعة من التعليمات عدة مرات بناءً على الشرط. يوجد في Java ثلاثة أنواع من الحلقات الموضحة أدناه:

1. للحلقة

يتم استخدام حلقة for عندما نعرف عدد التكرارات (نعرف عدد المرات التي نريد تكرار المهمة فيها). يتضمن بيان for شرط التهيئة والزيادة/النقصان في سطر واحد. 

مثال: يوضح برنامج Java أدناه حلقة for التي تطبع الأرقام من 0 إلى 10 في سطر واحد.

Java
   // Java program to demonstrates the working of for loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      for     (  int     i     =     0  ;     i      <=     10  ;     i  ++  )     {      System  .  out  .  print  (  i     +     ' '  );      }      }   }   

الإخراج
0 1 2 3 4 5 6 7 8 9 10  

بناء الجملة:

لـ (التهيئة؛ الشرط؛ الزيادة/النقصان) {

// الكود المراد تنفيذه

}

توضح الصورة أدناه مخطط التدفق للحلقة:

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

ملحوظة : هناك شكل آخر من أشكال حلقة for يعرف باسم محسّن للحلقة أو (لكل حلقة).

محسّن للحلقة (لكل منها)

يتم استخدام هذه الحلقة للتكرار على المصفوفات أو المجموعات.

مثال : يوضح برنامج Java أدناه حلقة for مُحسّنة (لكل حلقة) للتكرار عبر مصفوفة وأسماء الطباعة.

Java
   // Java program to demonstrate    // the working of for each loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      String  []     names     =     {     'Sweta'       'Gudly'       'Amiya'     };      for     (  String     name     :     names  )     {      System  .  out  .  println  (  'Name: '     +     name  );      }      }   }   

الإخراج
Name: Sweta Name: Gudly Name: Amiya  

بناء الجملة:

لـ (متغير نوع البيانات: arrayOrCollection) {

// الكود المراد تنفيذه

}

2. أثناء الحلقة

يتم استخدام حلقة while عندما نريد التحقق من الحالة قبل تنفيذ نص الحلقة.

مثال: يوضح برنامج Java أدناه حلقة while التي تطبع الأرقام من 0 إلى 10 في سطر واحد.

Java
   // Java program to demonstrates    // the working of while loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      int     i     =     0  ;      while     (  i      <=     10  )     {      System  .  out  .  print  (  i     +     ' '  );      i  ++  ;      }      }   }   

الإخراج
0 1 2 3 4 5 6 7 8 9 10  

بناء الجملة:

بينما (الحالة) {

// الكود المراد تنفيذه

}

توضح الصورة أدناه مخطط تدفق حلقة while:

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

3. افعل بينما حلقة

تضمن حلقة do-while تنفيذ كتلة التعليمات البرمجية مرة واحدة على الأقل قبل التحقق من الحالة.

مثال : يوضح برنامج Java أدناه حلقة تنفيذية تطبع الأرقام من 0 إلى 10 في سطر واحد.

Java
   // Java program to demonstrates    // the working of do-while loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      int     i     =     0  ;      do     {      System  .  out  .  print  (  i     +     ' '  );      i  ++  ;      }     while     (  i      <=     10  );      }   }   

الإخراج
0 1 2 3 4 5 6 7 8 9 10  

بناء الجملة:

يفعل {

// الكود المراد تنفيذه

} بينما (الحالة)؛

توضح الصورة أدناه المخطط الانسيابي لحلقة do-while:

مخطط انسيابي لحلقة do-while
  • تبدأ حلقة do while بتنفيذ العبارة. لا يوجد فحص لأي شرط لأول مرة.
  • بعد تنفيذ العبارات وتحديث قيمة المتغير يتم التحقق من صحة أو خطأ الشرط. إذا تم تقييمه على أنه التكرار التالي الحقيقي لبدء الحلقة.
  • عندما يصبح الشرط خاطئًا، تنتهي الحلقة مما يشير إلى نهاية دورة حياتها.
  • من المهم ملاحظة أن حلقة do-while ستنفذ بياناتها مرة واحدة على الأقل قبل التحقق من أي شرط، وبالتالي فهي مثال على حلقة التحكم في الخروج.

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

إذا لم يتم استخدام الحلقات بشكل صحيح، فيمكن أن تؤدي إلى مخاطر وأخطاء تؤثر على إمكانية قراءة أداء التعليمات البرمجية ووظائفها. فيما يلي بعض المخاطر الشائعة للحلقات:

1. حلقات لا نهائية

يعد هذا أحد الأخطاء الأكثر شيوعًا أثناء تنفيذ أي نوع من التكرارات وهو أنه قد لا يتم الخروج أبدًا حيث يتم تشغيل الحلقة لفترة غير محدودة. يحدث هذا عندما يفشل الشرط لسبب ما.

أنواع الحلقات اللانهائية:

  • لانهائي للحلقة
  • لانهائي أثناء الحلقة

مثال: يوضح كلا المثالين هنا الحلقات اللانهائية.

Infinite For Loop
   // Java program to demonstrate    // the infinite for loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      for     (  int     i     =     0  ;     i      <     5  ;     i  --  )     {      System  .  out  .  println  (      'This loop will run forever'  );      }      }   }   
Infinite While Loop
   // Java Program to demonstrate    // the infinite while loop   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      while  (  true  )      {      System  .  out  .  println  (      'Basic example of infinte loop'  );      }      }   }   

الإخراج: عند تشغيل كلا الكودين أعلاه، سوف تحصل على خطأ TLE (تجاوز الحد الزمني).

2. أخطاء متفرقة

تحدث أخطاء Off-by-One عندما يتم تشغيل الحلقة مرة واحدة أكثر أو أقل مما تريد. يحدث هذا بشكل أساسي عندما لا يتم ضبط حالة الحلقة بشكل صحيح.

مثال : يوضح برنامج Java أدناه خطأ Off-by-One حيث يتم تشغيل الحلقة 6 مرات وتوقعنا تشغيلها 5 مرات.

Java
   // Java Program to demonstrates Off-by-One Errors   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      for     (  int     i     =     0  ;     i      <=     5  ;     i  ++  )     {      System  .  out  .  print  (  i     +     ' '  );      }      }   }   

3. تعديل متغيرات الحلقة داخل الحلقة

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

مثال : يوضح برنامج Java أدناه تعديل متغير الحلقة داخل الحلقة والذي يتسبب في تخطي الحلقة لتكرارات معينة والتصرف بشكل غير متوقع.

Java
   // Java program demonstrates    // modification in i variable   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      for     (  int     i     =     0  ;     i      <     5  ;     i  ++  )     {      if     (  i     ==     2  )     {          // Modifies the loop variable and skips      // the next iteration      i  ++  ;      }      System  .  out  .  println  (  i  );      }      }   }   

4. هيئة حلقة فارغة

يحدث نص الحلقة الفارغة عندما تتم كتابة حلقة للتكرار ولكنها لا تنفذ أي عمليات داخل الحلقة. قد يكون تشغيل حلقة بدون أي عمليات مفيدة بداخلها أمرًا مربكًا.

مثال: يوضح برنامج Java أدناه نص الحلقة الفارغة.

Java
   // Java program to demonstrates Empty loop body   import     java.io.*  ;   class   Geeks     {      public     static     void     main  (  String  []     args  )      {      for     (  int     i     =     0  ;     i      <     10  ;     i  ++  )     {          // Empty body no operations      }      }   }   

لن يتم إنشاء أي مخرجات لهذا لأن نص الحلقة فارغ.

جدول ملخص

نوع الحلقة

متى تستخدم

فحص الحالة

ينفذ مرة واحدة على الأقل؟

للحلقة

عندما تريد التكرارات الدقيقة

قبل جسم الحلقة يطلق عليه التحكم في الدخول.

لا

أثناء الحلقة

عندما تحتاج إلى فحص الحالة أولاً.

قبل جسم الحلقة يطلق عليه التحكم في الدخول.

لا

افعل بينما حلقة

عندما تحتاج إلى الجري مرة واحدة على الأقل

بعد جسم الحلقة يطلق عليه التحكم في الخروج.

نعم

لكل حلقة

عند معالجة جميع عناصر المجموعة

يتم التعامل معها داخليا

لا

المشاركات ذات الصلة:

  • للحلقة
  • أثناء الحلقة
  • افعل بينما حلقة
إنشاء اختبار