حلقات التكرار While - For - Repeat
حلقات التكرار تستخدم الحلقات لأداء عمل معين بشكل متكرر حتى يتحقق شرط معين. ويتم إستخدامها في البرامج بشكل واسع الحلقة التكرارية For وهي تعد أكثر أنواع الحلقات التكرارية شيوعا تتطلب هذه الحلقة محددتين القيمةالبدائية والقيمة النهائية إذا كانت الحلقة تصاعدية تستخدم To وإذا كانت تنازلية نستخدم كلمة DownTo . الصيغة العامة لجملة for التصاعدية هي for var := initial_value to end_value do begin statment; end; في المثال السابق حلقة تكرر الشيفرة الممثلة بعبارة statement حتى تصل إلى القيمة النهائية end_value . لا داعي لاستخدام begin , end إذا كان جسم التكرار يتكون من عبارة واحدة. ولكن عندما نريد إضافة العديد من السطور فنحتاج لإستخدام Begin – End الصيغة العامة لجملة for التنازلية: for var := initial_value DownTo end_value do begin statment; end; في المثال السابق كتلة الشيفرة يجب أن تكون initial_value أكبر من end_value وتتناقص قيمة العداد المتغير var واحداً في كل تكرار للحلقة مثال عملي : أنشئ مشروعاً جديداً وأضف له زراً Button1 ومكون المفكرة Memo1 غير الخاصة Caption للزر واجعله " ابدأ " أنشئ الحدث OnClick له ، واكتب معالج الحدث كالتالي var I:Integer; begin Memo1.Clear; for I := 0 to 9 do Memo1.Lines.Add('هذا السطر رقم '+IntToStr(I)); end; الآن يمكنك تشغيل البرنامج ، إضغط الزر ابدأ وشاهد عمل الحلقة … الحلقتين التكراريتين While - Repeat والآن بعد أن رأيت كيف تعمل حلقة for لن يكون صعباً جداً عليك أن تطبق ذات المعنى على حلقتي while , repeat لنلقي الآن نظرة عليهما الآن. حلقة while تختلف حلقة while عن الحلقة For في كونها تحتوي على شرط يفحص عند بداية كل تكرار للحلقة . طالما أن الشرط محقق تستمر الحلقة في التنفيذ ويتوقف التنفيذ للحلقة عندما يكون الشرط غير محقق . إليك الشكل العام للحلقة while While cond_expr do Begin Statements; End; حيث يفحص البرنامج الشرط cond_expr وعند تحقق الشرط فإن البرنامج ينفذ الأوامر بين الأمرين End – Begin ويعود لقراءة الشرط مرة أخرى وهكذا يستمر في تنفيذ التكرار إلى أن يصبح الشرط غير متحقق فيخرج من التكرار وإذا كان جسم الحلقة مؤلف من عبارة واحدة فليس هناك داعي لإستخدام Begin – End حلقة Repeat مثل حلقة while ولكن الحلقة While تقوم بفحص الشرط في بداية الحلقة ولكن في حالة الحلقة Repeat فإن الشرط يفحص في نهاية الحلقة إليك هذا البرنامج الذي يبين عمل الحلقة Repeat وهو نفس مثال البرنامج للحلقة For مع تعديل سطور البرنامج ويمكن ملاحضة ان الحلقة repeat تتنفذ على الأقل مرة واحدة ولكن الحلقة While يمكن أن لا تنفذ ولا مرة Var I:Integer; begin I:=5; Memo1.Clear; Repeat Memo1.Lines.Add('هذا السطر رقم '+IntToStr(I)); Dec(I); Until I=-1; end; الإجرائين Break , Continue قبل أن ننهي الحديث عن الحلقات يجب أن نتعرف على إجرائين يساعدان على التحكم بتنفيذ البرنامج ضمن الحلقة . - استخدم الأمر Continue لتجبر البرنامج على الانتقال إلى نهاية الحلقة متجاوزاً كل العبارات التي تليه . - استخدم الأمر Break لتوقف عمل الحلقة مباشرة ولاتستحدم خارج الحلقات. كتب الدرس : أبو ماجد الصارم ريان |
Copyright © www.kettaneh.net