Die Anweisung While...End While wird mit einem booleschen Prüfausdruck ausgeführt. Solange die Auswertung des Prüfausdrucks True lautet, wird die Anweisung wiederholt. Das folgende Beispiel zeigt eine einfache While...End While-Schleife.
Dim counter As Integer = 0 Dim total As Integer = 0 While counter < 10 total = total + counter counter = counter + 1 End While
Eine While...End While-Schleife 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 While-Schleife 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 Steuerung wird an die End While-Anweisung übergeben.
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." While counter <= 10 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 While Else printValue("Load = " + stringValue(load) + _ "kg for " + stringValue(counter) + strItem) End If counter = counter + 1 End While End Rule Output: "Load = 5.000kg for 1 item." "Load = 10.000kg for 2 items." "Load = 15.000kg for 3 items." "Load = 20.000kg for 4 items." "Load = 25.000kg for 5 items." "Warning: Load = 30.000kg for 6 items. 25.000kg limit exceeded!"