Die Anweisung Do...Loop wiederholt sich so lange, bis die Auswertung ihres Booleschen Testausdrucks True ergibt. Der Boolesche Testausdruck kann am Anfang oder am Ende der Anweisung Do...Loop stehen.
Die folgende Syntax gilt für Do...Loop-Anweisungen, bei denen sich der Test am Anfang der Schleife befindet.
Do <While | Until> <expression> <statements> Loop
Im folgenden Beispiel wird das Konstrukt Do While...Loop verwendet.
Dim counter As Integer = 0 Dim total As Integer = 0 Do While counter < 10 total = total + counter counter = counter + 1 Loop
Statt Do While hätte in diesem Beispiel auch Do Until verwendet werden können. Die Anweisung mit Do Until sähe wie folgt aus:
Do Until counter = 10
Die folgende Syntax gilt für Do...Loop-Anweisungen, bei denen sich der Test am Ende der Schleife befindet.
Do <statements> Loop <While | Until> <expression>
Wenn sich der Testausdruck am Ende der Do...Loop-Anweisung befindet, wird der Anweisungsblock innerhalb der Schleife mindestens einmal ausgeführt.
Das folgende Beispiel entspricht dem vorherigen Do While...Loop-Beispiel, mit der Ausnahme, dass das Do...Loop While-Konstrukt verwendet wird.
Dim counter As Integer = 0 Dim total As Integer = 0 Do total = total + counter counter = counter + 1 Loop While counter < 10
Statt Loop While hätte in diesem Beispiel auch Loop Until verwendet werden können. Die Anweisung mit Loop Until sähe wie folgt aus:
Loop Until counter =10
Eine Do...Loop-Anweisung kann, wie nachfolgend gezeigt, mit einer Exit-Anweisung beendet werden.
In diesem Beispiel wird das Gewicht pro Einheit eines bestimmten Objekts mittels eines Parameters festgelegt. Eine Do...Loop-Anweisung innerhalb der load-Regel fügt das Gewicht zu einer Gesamtlast (von bis zu 10 Einheiten) hinzu. Für die Last gilt als Grenzwert 25. Während weitere Gewichte pro Einheit hinzugefügt werden, wird die Gesamtlast mit dem Grenzwert verglichen und eine Systemmeldung generiert. Wenn die Last den Grenzwert überschreitet wird der Meldung eine Warnung hinzugefügt, und die Schleife kommt zu einem Ende. Die Kontrolle wird von der Do...Loop-Anweisung abgegeben.
Parameter Rule unitWeight As Integer = 5 Rule load As Number Dim counter As Integer = 1 Dim limit As Number = 25.0 Dim strItem As String = " item." Do If counter > 1 Then strItem = " items." End If load = load + unitWeight If load > limit Then printValue("Warning: Load = " + stringValue(load) + _ "kg for " + stringValue(counter) + strItem + " " + _ stringValue(limit) + "kg limit exceeded!") Exit Do Else printValue("Load = " + stringValue(load) + _ "kg for " + stringValue(counter) + strItem) End If counter = counter + 1 Loop While counter <= 10 End Rule