IBM Lotus Symphony


‏‎For...Next Statement [Runtime]‎‏

يتم تكرار العبارات التي توجد بين For...Next block عدد معين من المرات.

الصيغة:

‏‎For counter=start To end [Step step]‎‏

كتلة العبارة

[Exit For]

كتلة العبارة

‏‎Next [counter]‎‏

المتغيرات:

Counter: يقوم Loop counter مبدئيا بتخصيص القيمة التي توجد يمين علامة يساوي (start). تكون المتغيرات الرقمية فقط صحيحة. يتم زيادة أو تناقص loop counter وفقا الى variable Step حتى يتم امرار End.

Start: متغير رقمي يقوم بتعريف القيمة المبدئية في بداية الحلقة.

End: متغير رقمي يقوم بتعريف القيمة النهائية في آخر الحلقة.

Step: يتم تحديد القيمة التي سيتم من خلالها زيادة ونقصان loop counter. اذا لم يتم تحديد Step، سيتم زيادة loop counter بالقيمة 1. في هذه الحالة، يجب أن تكون End أكبر من Start. اذا كنت تريد تقليل Counter، يجب أن تكون End أقل من Start، ويجب تخصيص قيمة سالبة الى Step.

تقوم حلقة For...Next بتكرار كل العبارات التي توجد في الحلقة لعدد المرات المحدد بواسطة المعاملات.

بتقليل قيمة متغير العد، يقوم Lotus® Symphony™ Basic بالتحقق مما اذا كان تم الوصول الى قيمة النهاية. بمجرد قيام أداة العد بامرار قيمة النهاية، سيتم انهاء الحلقة آليا.

يكون من الممكن تداخل عبارات For...Next. اذا لم تقم بتحديد متغير بعد عبارة Next، ستشير Next آليا لأحدث عبارة For.

اذا قمت بتحديد زيادة بمقدار 0، سيتم تكرار العبارات التي توجد بين For و Next بطريقة مستمرة.

وأثناء العد التنازلي لمتغير العد، يقوم Lotus Symphony Basic بالتحقق من تجاوز الحد الأدنى أو الأقصى. تنتهي الحلقة عندما Counter يتعدى End (قيمة Step موجبة) أو أقل من End (قيمة Step سالبة).

استخدم عبارة Exit For للخروج من الحلقة بدون شرط. يجب أن تكون هذه العبارة داخل حلقة For...Next. استخدم عبارة the If...Then لاختبار شرط الخروج كما يلي:

For...

العبارات

If condition = True Then Exit For

العبارات

‏تالي‏

ملاحظة: في حلقات For...Next المتداخلة، اذا قمت بالخروج من الحلقة بدون شرط باستخدام Exit For، سيتم الخروج من حلقة واحدة.

مثال

يستخدم المثال التالي حلقتين متداخلتين لفرز متجه مجموعة حروف ذو 10 عناصر ( sEntry() )، يتم ملئها أولا بمحتويات مختلفة:

Sub ExampleSort

‏‎Dim sEntry(9) As String‎‏

Dim iCount As Integer

Dim iCount2 As Integer

Dim sTemp As String

‏‎sEntry(0) = "Jerry"‎‏

‏‎sEntry(1) = "Patty"‎‏

‏‎sEntry(2) = "Kurt"‎‏

‏‎sEntry(3) = "Thomas"‎‏

‏‎sEntry(4) = "Michael"‎‏

‏‎sEntry(5) = "David"‎‏

‏‎sEntry(6) = "Cathy"‎‏

‏‎sEntry(7) = "Susie"‎‏

‏‎sEntry(8) = "Edward"‎‏

‏‎sEntry(9) = "Christine"‎‏

‏‎For iCount = 0 To 9‎‏

‏‎For iCount2 = iCount + 1 To 9‎‏

‏‎If sEntry(iCount) > sEntry(iCount2) Then‎‏

‏‎sTemp = sEntry(iCount)‎‏

‏‎sEntry(iCount) = sEntry(iCount2)‎‏

‏‎sEntry(iCount2) = sTemp‎‏

End If

Next iCount2

Next iCount

‏‎For iCount = 0 To 9‎‏

‏‎Print sEntry(iCount)‎‏

Next iCount

End Sub


التعليق التقييمي عن البرنامج | المزيد من المطبوعات الفنية | العلامات التجارية