<p class="Paragraph">Wiederholt die zwischen der Do- und der Loop-Anweisung aufgef├╝hrten Anweisungen solange (While) die angegebene Bedingung wahr ist oder bis (Until) die angegebene Bedingung wahr wird.</p>
<p class="Paragraph">Bedingung : Ein Vergleichsausdruck, numerischer Ausdruck oder Zeichenfolgenausdruck, der wahr (True) oder falsch (False) ist.</p>
<p class="Paragraph">Befehlsblock : Die Anweisungen, die wiederholt werden, solange die angegebene Bedingung wahr ist oder sobald die angegebene Bedingung wahr wird.</p>
<p class="Paragraph">Die <span class="T1">Do...Loop-Anweisung</span> eignet sich, um eine Schleife zu konstruieren, die solange durchlaufen wird, bis oder solange eine bestimmte Bedingung erf├╝llt ist. Die Abbruchkriterien m├╝ssen entweder hinter der Do-Anweisung oder hinter der Loop-Anweisung angegeben werden; beides kombiniert ist nicht statthaft. Folgende vier Kombinationen sind also m├╢glich.</p>
<p class="P2">Syntax</p>
<p class="Paragraph">Do While Bedingung = True</p>
<p class="Paragraph">...Befehlsblock</p>
<p class="Paragraph">Loop</p>
<p class="Paragraph">Das Programm überprüft, ob die Bedingung wahr ist. Ist sie falsch, geht es mit der Programmausführung direkt hinter Loop weiter. Ist die Bedingung wahr, wird die Schleife durchlaufen, das Programm trifft auf Loop und springt zurück zur Do-Anweisung. Ist die Bedingung jetzt immer noch wahr, wird die Schleife abermals durchlaufen, ansonsten fährt das Programm mit der Ausführung des hinter der Loop-Anweisung stehenden Befehls fort.</p>
<p class="Paragraph">Kurz zusammengefaßt: Die Schleife wird nur dann und nur solange, wie die Bedingung wahr ist, ausgeführt.</p>
<p class="Paragraph">Do Until Bedingung = True</p>
<p class="Paragraph">...Befehlsblock</p>
<p class="Paragraph">Loop</p>
<p class="Paragraph">Das Programm überprüft, ob die Bedingung wahr ist. Ist sie es, geht es mit der Programmausführung direkt hinter Loop weiter. Ist die Bedingung nicht wahr, wird die Schleife durchlaufen, das Programm trifft auf Loop, springt zurück zur Do-Anweisung. Ist die Bedingung jetzt immer noch nicht wahr, wird die Schleife abermals durchlaufen, ansonsten fährt das Programm mit der Ausführung der hinter der Loop-Anweisung stehenden Anweisung fort.</p>
<p class="Paragraph">Kurz zusammengefaßt: Die Schleife wird nur dann ausgeführt, wenn die Bedingung zunächst falsch ist, und dann solange bis die Bedingung wahr ist.</p>
<p class="Paragraph">Do</p>
<p class="Paragraph">...Befehlsblock</p>
<p class="Paragraph">Loop While Bedingung = True</p>
<p class="Paragraph">Das Programm tritt sofort in die Schleife ein. Trifft es auf Loop, ├╝berpr├╝ft es, ob die Bedingung wahr ist. Ist sie es, geht es mit der Programmausf├╝hrung bei Do weiter - die Schleife wird wiederholt. Erst wenn die Bedingung hinter Loop falsch wird, tritt das Programm aus der Schleife aus.</p>
<p class="Paragraph">Kurz zusammengefaßt: Die Befehle innerhalb der Schleife werden in jedem Fall einmal und solange wie die Bedingung wahr ist, ausgeführt.</p>
<p class="Paragraph">Do</p>
<p class="Paragraph">...Befehlsblock</p>
<p class="Paragraph">Loop Until Bedingung = True</p>
<p class="Paragraph">Das Programm tritt sofort in die Schleife ein. Trifft es auf Loop, ├╝berpr├╝ft es, ob die Bedingung wahr ist. Ist sie es nicht, geht es mit der Programmausf├╝hrung bei Do weiter - die Schleife wird wiederholt. Erst, wenn die Bedingung hinter Loop wahr wird, tritt das Programm aus der Schleife aus.</p>
<p class="Paragraph">Kurz zusammengefaßt: Die Befehle innerhalb der Schleife werden in jedem Fall einmal und solange bis die Bedingung wahr wird, ausgeführt.</p>
<p class="Paragraph">Wichtigster Unterschied zwischen den ersten beiden und den letzten beiden Konstruktionen: Bei den ersten beiden Konstruktionen wird die Schleife nicht unbedingt, also nur in Abhängigkeit von der Bedingung ausgeführt. Bei den letzten beiden Konstruktionen werden die zwischen Do und Loop stehenden Befehle wenigstens ein einziges Mal ausgeführt.</p>
<p class="Paragraph">Mit Hilfe der Anweisung Exit Do kann die Schleife unbedingt verlassen werden. Dieser Befehl befindet sich innerhalb eines Befehlsblocks, der durch Do und Loop umschlossen ist. In der Regel konstruieren Sie hier mit Hilfe der If...Then-Struktur eine Abbruchbedingung im Sinne von:</p>
<p class="Paragraph">Do...</p>
<p class="Paragraph">Befehle</p>
<p class="Paragraph">If Bedingung = True Then Exit Do</p>