بما أن اوامر التكرار تشبه بعضها بعضًا بشكل كبير، في هذا الدرس سيتم شرحها لـ3 لغات برمجية مختلفة. للدروس السابقة يمكنك العودة للأقسام من القائمة الجانبية.
هناك عِدة أهداف من أوامر التكرار أهمها هو تجنب تكرار الشفرة لذات الغرض أكثر من مرة، لنتفرض أنك ترغب بعمل برنامج لحساب حاصل جمع 10 ارقام، بالتالي سيكون عليك تكرار الشفرات 10 مرات لكل رقم على حدى، لكن يمكن اختصار السطور باستخدام أوامر التكرار.
في Java, C و PHP، هناك 3 انواع من أوامر التكرار وهي:
- while
- do-while
- for
وتستخدم بالطريقة الآتية:
1. while
أولًا: تحديد متغير بقيمة أولية ولنفترض أنه i والقيمة الأولية هي 1.
ثانيًا: كتابة الكلمة المفتاحية while وبين قوسين كتابة “expression” أو تعبير رياضي من خلاله تحدد القيمة النهائية للتكرار، لنتفرض أننا نريد إيقاف التكرار عندما تبلغ قيمة i الرقم 10 مثلًا، فيمكن كتابة التعبير (i < 11) – اي المتغير أصغر من 11 أو (i <= 10) – أي المتغير اصغر أو يساوي 10.
ثالثًا: داخل كتلة التكرار “أي بين { و }” تضع ذات المتغير بشكل متزايد؛ مثلًا: i++ أو i= i+1 أو يمكن بطرق أخرى. عدم وضع التزايد قد يسبب حمل زائد على الذاكرة بالتالي إيقاف عمل البرنامج، وذلك يعتمد على المترجم.
2. do-while
أولًا: تحديد متغير بقيمة أولية ولنفترض أنه i والقيمة الأولية هي 1.
ثانيًا: كتابة الكلمة المفتاحية do ويتلوها قوسي الكتلة “أي { و }”.
ثالثًا: داخل كتلة التكرار “أي بين { و }” تضع ذات المتغير بشكل متزايد؛ مثلًا: i++ أو i= i+1 أو يمكن بطرق أخرى. عدم وضع التزايد قد يسبب حمل زائد على الذاكرة بالتالي إيقاف عمل البرنامج، وذلك يعتمد على المترجم.
رابعًا: كتابة الكلمة المفتاحية while وبين قوسين كتابة “expression” أو تعبير رياضي من خلاله تحدد القيمة النهائية للتكرار، لنتفرض أننا نريد إيقاف التكرار عندما تبلغ قيمة i الرقم 10 مثلًا، فيمكن كتابة التعبير (i < 11) – اي المتغير أصغر من 11 أو (i <= 10) – أي المتغير اصغر أو يساوي 10.
3. for
تلخص كافة الخطوات في while في سطر واحد ليكون كالتالي:
كلمة for المفتاحية وبين القوسين بالترتيب: نكتب قيمة المتغير الأولية ونضع “؛” (فاصلة منقوطة) وبعدها التعبير الرياضي (مثلا i<=10) ونضع “؛” وأخيرًا نضع امر التزايد ليكون مثلًا i++
الآن سأقوم بوضع الأمثلة لتصل المعلومة بشكل أفضل، أولًا: Java:
class testloop { public static void main(String[]args) { int i; //type 1 i=1; System.out.print("Type 1 (while): \n"); while(i <= 10) { System.out.print(i + "\n"); i++; } //type 2 i=1; System.out.print("\nType 2 (do-while): \n"); do { System.out.print(i + "\n"); i++; } while(i <= 10); //type 3 System.out.print("\nType 3 (for): \n"); for(i=1;i<=10;i++) { System.out.print(i + "\n"); } } }
ثانيًا: C:
#include <stdio.h> main() { int i; //type 1 i=1; printf("Type 1 (while): \n"); while(i<=10) { printf("%d \n", i); i++; } //type 2 i=1; printf("\nType 2 (do-while): \n"); do { printf("%d \n", i); i++; } while(i<=10); //type 3 printf("\nType 3 (for): \n"); for(i=1;i<=10;i++) { printf("%d \n", i); } }
ثالثًا: PHP:
<?PHP // Type 1 $i=1; echo "type 1 (while):<br />\n"; while($i <= 10) { echo $i."<br />"; $i++; } // Type 2 $i=1; echo "type 2 (do-while):<br />\n"; do { echo $i."<br />"; $i++; } while($i <= 10); // Type 3 echo "type 3 (for):<br />\n"; for($i=1;$i<=10;$i++) { echo $i."<br />"; } ?>
هل توافقني على أنها متشابهة جدًا ؟ 😀
رأي واحد حول “التكرار في C, Java و PHP”