Anweisung Do...Loop

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
Anmerkung: Weitere Informationen finden Sie unter Anweisung Exit.