حلقات البرنامج PROGRAM LOOPS
بعض التعليمات(العمليات) يتم تنفيذهاأكثر من مرةفي البرنامج .مجموعة الأوامر التى تتكرر تصنع حلقة loopبرنامج .كم مرةسيتم تنفيذها، أى إلى متى سيبقى البرنامج داخل الحلقة، يعتمد على ظروفترك (مغادرة)الحلقة .
1- حلقة WHILE
يتم تنفيذحلقة whileعندمالا يتم تحديدعدد مرات التكرار. من الضرورى التحقق من شرط التكرارقبلتنفيذالحلقة.ببساطة ،يتم تنفيذ حلقة while طالما يتماستيفاء جميعالشروطاللازمة لتنفيذها.
فيما يلى شكل بناء حلقة while:
كود:
while expressionstatements
wend
العباراتstatements تمثل مجموعة منالعبارات التى يتم تنفيذهابشكل متكررطالما أنقيمةالتعبيرexpression صحيحا. بعبارة أخرى، يبقى البرنامجفى الحلقة حتىيصبحالتعبير غير صحيح . يتم فحصقيمةالتعبيرقبل تنفيذالتكرار التالى . وفقا لذلك ، لو كانت قيمة التعبير غير صحيحة قبل دخول الحلقة ، فلن يتم تنفيذ التكرار ، أى لن يتم تنفيذ العبارات أبدا . سوف يتقدم البرنامج بالتنفيذ مننهاية الحلقة wend(من التعليمات التى تلى التعليمة wend).
هناك نوع خاصمن حلقات البرنامج هى الحلقة التى لا نهاية لها endless loop, ويتم إنشاؤهاإذا كان شرطالخروج من الحلقة لا يتغيرداخلالحلقة .
في هذه الحالة، يكون التنفيذبسيطنتيجة لأن تقييم الشرط يكون هودائماصحيح , مما يعنيأن البرنامجيظل فى الحلقة .
كود:
while 1 ' ‘true’ can be written instead of ‘1’
... ' Expressions will be unceasingly executed (endless loop)
...
wend
2- حلقة FOR
يتم تنفيذ حلقة forعندمايتم تحديدعدد مرات التكرار. فيما يلى شكل بناء حلقة for :
كود:
for counter = initial_value to final_value [step step_value]
statements
next counter
هنا، مع كل تكرار للحلقة، يتم زيادة المتغير "العداد" counter بقيمة الخطوة step_value. البارامتر step_value هو قيمة اختيارية لعدد صحيح ، وتعتبر بواحد إذا حذفت. قبل التكرار الأول ، يتم تحديد "العداد" counterبقيمته الابتدائية initial_valueوسوف يتزايد حتى يصل أو يتجاوز "القيمة النهائية" final_value. سوف يتم تنفيذ العبارات statementsمع كل تكرار. كل من "القيمة الابتدائية" initial_value و"القيمة النهائية" final_valueينبغى أن تكون تعبيرات متوافقة مع "العداد" counter، في حين أن العبارات statementsيمكن أن تكون أى عبارة لا تغير قيمة العداد . لاحظ أن بارامتر "قيمة الخطوة" step_valueقد يكون سالب ، وبالتالى يمكن العد التنازلى .
مثال :
كود:
for k=1 to 5 ' Increase variable k five times (from 1 to 5) and
operation ' keep on executing "operation" every time
...
next k
هنا , سوف يتم تنفيذ مجموعة من التعليمات (العمليات) operation خمس مرات (بعد 5 تكرارات k=5). بعد ذلك ، سوف يتم تحديد أن k<5 ويكون تقييم الشرط k=1 to 5 "غير صحيح" falseويتم خروج البرنامج من الحلقة .
3- حلقة DO :
يتم تنفيذ حلقة doعندما لا يتم تحديد عدد مرات التكرار. يتم تنفيذ الحلقة بشكل متكرر طالما أن نتيجة تقييم التعبير expression صحيحة true. فيما يلى شكل بناء الجملة لحلقة do :
كود:
do
statements
loop until expression
في هذه الحالة، العبارات statements تمثل مجموعة من العبارات التى يتم تنفيذها طالما أن التعبير expression صواب true. أى يتم فحص شروط الحلقة فى نهاية الحلقة، لذلك يتم تنفيذ الحلقة على الأقل مرة واحدة بغض النظر عن ما إذا كان الشرط صحيحا أو غير صحيح . في المثال التالى ، يظل البرنامج فى حلقة doحتى يصل المتغير (a) إلى 1E06 ( مليون تكرار) .
كود:
a = 0 ' Set initial value
do
a = a+1 ' Operation in progress
loop until a <= 1E06 ' Check condition