IBM Lotus Symphony
|
يتم تكرار العبارات التي توجد بين 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