بسم الله الرحمن الرحيم
مفهوم التكرار في For :
في أكثر من لغة برمجة تستخدم نفس Syntax، لكن في لغة Python تختلف قليلاً بينما في لعة C++ و Java متماثلة.
في هذا المقال سنتطرق لآلية عمل For في Java .. هيا ننطلق و نبدأ رحلتنا ؛
for ( //CountVariable ; //StopCondition ; //toMovingloop ) { //Code }
ينقسم لثلاثة أجزاء :
- الجزء الأول لإنشاء و تعريف المتغير المستخدم لتحريك loop .
- الجزء الثاني لوضع الشرط الذي يجعل التكرار يتوقف و لا ينفذ ما بداخله.
- الجزء الثالث و الأخير لتحريك loop باستخدام المتغير.
و يستعمل عند تكرار أمر ما مع اختلاف بسيط مثلاً في العدد المخل أو تسلسل رقم ما، فهو يساعد في اختصار عدد الأسطر المكتوبة للكود و يكون أسهل للقراءة و التتبع فيما بعد.
مثال ذلك:
لنقم بكتابة برنامج يقوم بطباعة الأعداد من 1 إلى 10 مثلاً !
بما أننا سنبدأ بالعد من العدد واحد فإن:
for ( int z = 1 ; ; ) { }
ستكون قيمة العداد بـ 1 ،
و شرط التوقف بما أننا نريد العدد 10 هو العدد الآخير الذي نريد طباعته، فإننا سنستمر بالطباعة حتى العدد 10 فإن كان العدد 11 فإنه يقوم بالخروج من loop و تنفيذ الأوامر التالية من الكود خارج loop ، نكتب الشرط كالتالي:
for ( int z = 1 ; z <= 10 ; ) { }
هذا الشرط يدل على إن كان المتغير z أصغر من أو يساوي 10 يمكنك الدخول لحلقة التكرار و تنفيذ الأوامر الموجودة فيه.
و الجزء الأخير هو ما يتعلق بمحرك loop الذي يساعد في تحقيق شرط التوقف و الخروج من حلقة التكرار، الأمر الاغلب في كتابته هو z++ التي تدل على z = z + 1 :
for ( int z = 1 ; z <= 10 ; z++ ) { }
و ما داخل الحلقة هو أمر الطباعة:
for ( int z = 1; z <= 10 ; z++ )
{
System.out.println( z );
}
قبل أن تكمل القراءة خمن ما شكل المخرجات من هذا الكود و اكتبه على ورقة ..
من هذا الكود يكم شكل المخرجات كالتالي:
1
2
3
4
5
6
7
8
9
10
هذه الفكرة الأساسية من عمل for loop و من ذلك يمكننا التلاعب في الابتكار في استخدامها، قبل أن استرسل في اشكال استخدامها الأخرى أود أن أنوه على أغلب الأخطاء التي نقع فيها عند استخدامها:
- التكرار اللانهائي ما يسمى بـ ( infint loop ) ، و هو طبعاً خطأ منطقي في أننا لم نحدد بشكل دقيق أمر الوقوف للتكرار فيستمر في الحلقة دون الخروج منها إلى المالانهاية.
يمكننا استخدام ( nested loop ) أي loop داخل loop آخر، غالباً تستخدم لرسم شكل ما أو لـ 2D array ، التكرار الخارجي للعامود و التكرار الداخلي للصف ..
مثال على nested loop :
for ( int i = 0 ; i < 4 ; i++ )
{
for ( int j = 1 ; j < 3 ; j++ )
System.out.println("^");
}
فما الشكل الناتج عن الكود السابق؟ من دون استخدام compiler كيف يمكنك تتبع هذا الكود و معرفة مخرجاته؟
هذا ما سنعرفه بإذن الله في المقال القادم ... دمتم بخير :)
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !