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

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

حلقة FOR

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

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

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

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

instagram viewer

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

ملاحظة: من المهم عدم تغيير قيمة متغير التحكم في منتصف الحلقة. سيؤدي ذلك إلى حدوث أخطاء.

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

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

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

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

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

حلقة FOR-IN

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

مقدار ثابت
s = 'حول برمجة دلفي' ؛
فار
ج: حرف ؛
ابدأ
إلى عن على ج في س فعل
ابدأ
إذا ج في ['a'، 'e'، 'i'] ثم
ابدأ
// قم بعمل ما
النهاية;
النهاية;
النهاية;

الحلقات WHILE و REPEAT

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

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

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

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

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

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

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

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

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

كسر واستمر

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