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

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

الحلقة عنصر شائع في جميع لغات البرمجة. لدى دلفي ثلاثة هياكل تحكم تقوم بتنفيذ كتل من التعليمات البرمجية بشكل متكرر: من أجل ، كرر ... حتى وأثناء ... القيام به.

حلقة FOR

لنفترض أننا نحتاج إلى تكرار العملية عدة مرات.

// إظهار مربعات الرسائل 1،2،3،4،5
فار j: عدد صحيح
ابدأ
إلى عن على ي: = 1 إلى 5 فعل
ابدأ
ShowMessage ('Box:' + IntToStr (j)) ؛
النهاية;
النهاية;

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

في بعض الأحيان يكون من الضروري الاعتماد على الوراء. ال نازل إلى تحدد الكلمة الأساسية أن قيمة العداد يجب أن تتناقص بمقدار واحد في كل مرة تنفذ فيها الحلقة (لا يمكن تحديد زيادة / تناقص بخلاف واحد). مثال للحلقة التي تحسب للخلف.

فار j: عدد صحيح
ابدأ
إلى عن على ي: = 5 نازل إلى 1 فعل
ابدأ
ShowMessage ('T minus' + IntToStr (j) + 'seconds')؛
النهاية;
ShowMessage ('من أجل التسلسل المنفذ!') ؛
النهاية;

ملاحظة: من المهم ألا تقوم أبدًا بتغيير قيمة متغير التحكم في منتصف الحلقة. القيام بذلك سوف يسبب أخطاء.

متداخلة للحلقات

تعد كتابة حلقة داخل حلقة أخرى (حلقة تداخل) مفيدة جدًا عندما تريد تعبئة / عرض البيانات في جدول أو شبكة.

فار k، j: integer؛
ابدأ
// يتم تنفيذ هذه الحلقة المزدوجة 4 × 4 = 16 مرة
إلى عن على ك: = 1 إلى 4 فعل
إلى عن على ي: = 4 نازل إلى 1 فعل
ShowMessage ('Box:' + IntToStr (k) + '،' + IntToStr (j))؛
النهاية;

قاعدة تداخل الحلقات التالية بسيطة: يجب إكمال الحلقة الداخلية (عداد j) قبل مواجهة العبارة التالية للحلقة الخارجية (عداد k). يمكن أن يكون لدينا حلقات متداخلة بشكل ثلاثي أو رباعي ، أو حتى أكثر من ذلك.

ملاحظة: بشكل عام ، الكلمات الأساسية للبداية والنهاية غير مطلوبة تمامًا ، كما ترون. إذا لم يتم استخدام البداية والنهاية ، فسيتم اعتبار العبارة التي تلي العبارة for مباشرة نص الحلقة.

حلقة FOR-IN

إذا كان لديك Delphi 2005 أو أي إصدار أحدث ، فيمكنك استخدام التكرار "الجديد" لنمط العنصر في المجموعة على الحاويات. يوضح المثال التالي التكرار على تعبيرات السلسلة: لكل حرف في السلسلة ، تحقق مما إذا كانت الحرف إما "a" أو "e" أو "i".

CONST
s = 'حول دلفي البرمجة' ؛
فار
ج: شار ؛
ابدأ
إلى عن على ج في الصورة فعل
ابدأ
إذا ج في 'ا'، 'ه'، 'ط' ثم
ابدأ
// قم بعمل ما
النهاية;
النهاية;
النهاية;

في حين وكرر الحلقات

في بعض الأحيان لن نعرف بالضبط عدد المرات التي يجب أن تنقسم فيها الحلقة. ماذا لو أردنا تكرار العملية حتى نصل إلى هدف محدد؟

يتمثل الاختلاف الأكثر أهمية بين حلقة التكرار أثناء التكرار وحلقة التكرار في أن يتم تنفيذ رمز عبارة التكرار دائمًا مرة واحدة على الأقل.

النمط العام عندما نكتب نوع تكرار (وأثناء) من الحلقة في دلفي هو كما يلي:

كرر
ابدأ
صياغات؛
النهاية;
حتى الشرط = صحيح
في حين الشرط = صحيح فعل
ابدأ
صياغات؛
النهاية;

إليك الرمز لإظهار 5 مربعات رسائل متعاقبة باستخدام التكرار حتى:

فار
j: عدد صحيح
ابدأ
ي: = 0؛
كرر
ابدأ
j: = j + 1 ؛
ShowMessage ('Box:' + IntToStr (j)) ؛
النهاية;
حتى ي> 5 ؛
النهاية;

كما ترون ، تقوم عبارة التكرار بتقييم الشرط في نهاية الحلقة (وبالتالي يتم تنفيذ تكرار التكرار مرة واحدة على الأقل).

بينما تقوم عبارة "بينما" ، من ناحية أخرى ، بتقييم حالة ما في بداية الحلقة. نظرًا لأن الاختبار يتم في الجزء العلوي ، فسنحتاج عادةً إلى التأكد من أن الحالة منطقية قبل معالجة الحلقة ، إذا لم يكن هذا صحيحًا ، فقد يقرر المترجم إزالة الحلقة من الشفرة.

فار j: عدد صحيح
ابدأ
ي: = 0؛
في حين j <5 فعل
ابدأ
ي: = ي + 1؛
ShowMessage ('Box:' + IntToStr (j)) ؛
النهاية;
النهاية;

كسر ومتابعة

يمكن استخدام إجراءات Break و Continue للتحكم في تدفق العبارات المتكررة: يؤدي إجراء Break إلى تدفق عنصر التحكم للخروج من أو أثناء أو تكرار العبارة والمتابعة في الجملة التالية بعد عبارة الحلقة. متابعة يتيح تدفق التحكم للمتابعة إلى التكرار التالي لعملية التكرار.