الحلقات التكرارية في جافا

الحلقة التكرارية For

تستخدم التكرارية للتعامل مع الكود أكثر من مرة مثل طباعة رسالة اكثر من مرة .

Syntax

				
					for(statement1; statement2; statement3){
    // code block to be executed
}
for (int i = 0; i < 5; i++) {
    // هنا ينفذ الكود المراد تكراره اكثر من مرة
}
for (int i = 10; i >= 5; i--) {
    // هنا ينفذ الكود المراد تكراره اكثر من مرة
}
				
			

statement1:

 تعريف متغير واعطائه قيمة ثابتة كأن تكون بداية للتكرار او نهاية

statement2:

شرط استمرار التكرار

statement2:

 زيادة او نقصان استمرار التكرار

i++

وتسمى increment وتعني تزايد العدد بمقدار واحد ويمكن استخدام بدلها i=i+1 او استخدام i+=1 فكلها نفس العمل .

i--

وتسمى decrement وتعني تناقص العدد بمقدار واحد ويمكن استخدام بدلها i=i-1 او استخدام i-=1 فكلها نفس العمل .

المثال الاول

في هذا المثال عرفنا متغير التكرار i واعطينا له قيمة ابتدائية وتساوي 0 , ووضعنا شرط التكرار طباعة قيمة ال i متى ما كانت الi اصغر من 3 وزيادة الi بقيمة 1 , ++i تعني زيادة بمقدار واحد

				
					for (int i = 0; i < 3; i++) {
  System.out.println(i);
}
Output :
0
1
2
				
			

Output :
0
1
2

مثال ثاني

هنا قيمة بداية التكرار 1 وشرط التكرار ان يستمر مهما كانت قيمة الi اصغر من 4 او تساوي 4 والزيادة بمقدار 1 , للتنبيه i=i+1 هي نفسها ++i

				
					for (int i = 1; i <= 4; i=i+1) {
  System.out.println(i);
}
				
			

Output :
1
2
3
4

مثال ثالث

هنا قيمة بداية التكرار 5 ويستمر التكرار مهما كانت قيمة الi اصغر من او تساوي 10 والزيادة بمقدار 1 , للتنبيه i+=1 هي نفسها ++i وكذلك i=i+1

				
					for (int i = 5; i <= 10; i+=1) {
  System.out.println(i);
}
				
			

Output :
5
6
7
8
9
10

مثال رابع

هنا قيمة بداية التكرار 0 ويستمر التكرار مهما كانت قيمة الi اصغر او تساوي 10 والزيادة بمقدار 2

				
					for (int i = 0; i <= 10; i+=2) {
  System.out.println(i);
}
				
			

Output :
0
2
4
6
8
10

التكرار بالنقصان

في هذا المثال سنقوم بالنقصان وليس الزيادة لمتغير التكرار الi , للتنبيه i-=1 و i=i-1 و –i نفس الاداء

				
					for (int i = 5; i > 0; i--) {
  System.out.println(i);
}
				
			

Output :
5
4
3
2
1

مثال ثاني

				
					for (int i = 10; i >=4; i-=2) {
  System.out.println(i);
}
				
			

Output :
10
8
6
4

الحلقة التكرارية المتداخلة For

في كل حلقة تكرار واحدة يتم تنفيذ حلقة تكرارية متكاملة داخل هذه الحلقة الرئيسية .

Syntax

				
					for(statement1; statement2; statement3){

     for(statement1; statement2; statement3){

     }

}
				
			

مثال الاول في هذا المثال حلقة متداخلة اي حلقة تكرارية داخل حلقة اخرى

				
					for (int i = 1; i <=3; i++) {

   for (int j = 1; j <=2; j++) {

      System.out.println("i="+ i +" j="+j);

   }

}
				
			

Output :
i=1 j=1
i=1 j=2
i=2 j=1
i=2 j=2
i=3 j=1
i=3 j=2

مثال ثاني مثال لعملية الضرب

				
					for (int i = 1; i <=3; i++) {

   for (int j = 1; j <=2; j++) {

        System.out.println(i + " * " + j +"=" + (i*j));

   }

}
				
			

Output :
1 * 1=1
1 * 2=2
2 * 1=2
2 * 2=4
3 * 1=3
3 * 2=6

 

مثال ثالث توضيح اكثر بساطة للتمييز بين عمل التكرار المتداخل

				
					for (int i = 1; i <=3; i++) {

   System.out.println("----التكرار الخارجي----");

   for (int j = 1; j <=2; j++) {

       System.out.println("----التكرار الداخلي----");

   }

}
				
			

Output :
التكرار الخارجي
التكرار الداخلي
التكرار الداخلي
التكرار الخارجي
التكرار الداخلي
التكرار الداخلي
التكرار الخارجي
التكرار الداخلي
التكرار الداخلي

الحلقة التكرارية While Loop

شبيه بالحلقة التكرارية الfor لكن يعتمد مبدء عملها واستمرار دورانها على الشرط داخل القوس مهما كان متنفذ الشرط فهي تستمر بالتكرار .

Syntax

				
					while (condition) {
  // الكود المراد تكراره
}
				
			

مثال الاول

				
					public class Example {

  public static void main(String[] args) {

    int i=10;

    while(i>0)
    {
       System.out.println("i="+i);
       i=i-1;
    }

  }

}
				
			

Output :
i=10
i=9
i=8
i=7
i=6
i=5
i=4
i=3
i=2
i=1

توضيح المثال نلاحظ ان شرط الاستمرار هو i أكبر من الصفر اي مهما كان i اكبر من الصفر نفذ ما هو داخل القوس التكراري .

i=i-1

لابد ان نجعل للحلقة التكرارية حد عن الاستمرار بالتكرار لذلك قمنا في كل تكرار بطرح واحد من الi حتى ينزل الi تدريجياً من ال10 الى الصفر وبما ان ال i هنا اصبحت قيمتها صفر فهنا الشرط لا يتحقق وبالتالي لا يتم تنفيذ ماهو داخل القوس

الحلقة التكرارية While Loop

مثال ثاني في هذا المثال قمنا بالزيادة حتى وصولا الى ال10 .

				
					public class Example {

  public static void main(String[] args) {

    int i=0;

    while(i<=10)
    {
       System.out.println("i="+i);
        i++ ;// i=i+1 , i+=1
    }

  }

}
				
			

Output :
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
i=10

الحلقة التكرارية Do While

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

مثال الاول

نلاحظ في هذا المثال قمنا بتنفيذ ما هو داخل الdo ثم قمنا بعملية التحقق من الشرط while وكالأتي قمنا بطباعة قيمة ال i والتي تساوي 10 ومن ثم طرح من قيمة الi لتصبح قيمتها 9 وبعدها مررنا للتحقق من الشرط فوجد ان i التي اصبحت قيمتها 9 هي ليست اكبر من ال5 كما في المثال وبالتالي لا يتحقق الشرط فخرج من عملية التكرار

				
					public class Example {

  public static void main(String[] args) {

     int i=10;

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

  }

}
				
			

Output :
i=10

مثال ثاني

				
					int i=10;

do{
   System.out.println("i="+i);
   i--;
} while(i>=5)


				
			

Output :
i=10
i=9
i=8
i=7
i=6
i=5

الحلقة التكرارية For-Each Loop

وهو نوع اخر من حلقات التكرار يستخدم مع المصفوفات ( سنأخذ المصفوفات في الدرس القادم)

Syntax

				
					for (type variableName : arrayName) {
  // هنا ينفذ كود التكرار
}
				
			

مثال

في هذا المثال قمنا بعمل مصفوفة من النصوص الخاصة بالسيارات ومن ثم قمنا بطباعتها باستخدام الfor

				
					String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};

for (String i : cars) {
  System.out.println(i);
}
				
			

Output :
Volvo
BMW
Ford
Mazda

التحكم بالعبارات التكرارية Break and Continue

break وتستخدم لتوقف الحلقة التكرارية عند حد ما وذلك بوضع شرط فاذا تحقق الشرط ينهي الحلقة التكرارية عن الاستمرار .

				
					for (int i = 0; i < 10; i++) {
  if (i == 4) {
    break;
  }
  System.out.println(i);

}
				
			

Output :
0
1
2
3

التحكم بالعبارات التكرارية Break and Continue

continue وتستخدم لتخطي تنفيذ التكرار عند تحقق شرط ما فمثلا في هذا المثال شرطنا اذا الi اصبحت تساوي قيمتها 4 هنا تخطي هذه المرحلة من التكرار واستمر بباقي عمليات التكرار .

				
					for (int i = 0; i < 10; i++) {
  if (i == 4) {
    continue;
  }
  System.out.println(i);

}
				
			

Output :
0
1
2
3
5
6
7
8
9

Break and Continue with While Loop

break

				
					int i = 0;
while (i < 10) {
  System.out.println(i);
  i++;
  if (i == 4) {
    break;
  }
}
				
			

Output :
0
1
2
3

Continue

				
					int i = 0;
while (i < 10) {
  if (i == 4) {
    i++;
    continue;
  }
  System.out.println(i);
  i++;
}
				
			

Output :
0
1
2
3
5
6
7
8
9

شارك المقال

مواضيع قد تعجبك: