DO WHILE ... ENDDO-Befehl
Führt eine Gruppe von Befehlen innerhalb einer bedingten Schleife aus.
DO WHILE lExpressionCommands
[LOOP]
[EXIT]
ENDDO
Parameter
- lExpression
Gibt einen logischen Ausdruck an, dessen Wert bestimmt, ob die Befehle zwischen DO WHILE und ENDDO ausgeführt werden. Solange die Auswertung von lExpression den Wert Wahr (.T.) ergibt, werden die Befehle ausgeführt. - Commands
Gibt die Gruppe von Visual FoxPro-Befehlen an, die ausgeführt werden, solange die Auswertung von lExpression Wahr (.T.) ergibt. - LOOP
Gibt die Programmsteuerung direkt an DO WHILE zurück. LOOP kann an eine beliebige Stelle zwischen DO WHILE und ENDDO gesetzt werden. - EXIT
Überträgt die Programmsteuerung von der DO WHILE-Schleife an den ersten Befehl, der auf ENDDO folgt. EXIT kann an eine beliebige Stelle zwischen DO WHILE und ENDDO gesetzt werden.
Hinweise
Die Befehle zwischen DO WHILE und ENDDO werden ausgeführt, solange die Auswertung des logischen Ausdrucks lExpression Wahr (.T.) ergibt. Für jede DO WHILE-Anweisung muss es eine entsprechende ENDDO-Anweisung geben.
Kommentare können nach DO WHILE und ENDDO in dieselbe Zeile gesetzt werden. Diese Kommentare werden beim Kompilieren und Ausführen des Programms ignoriert.
Beispiel
Im folgenden Beispiel wird mit einer DO WHILE-Schleife, die bis zum Ende der Datei (EOF) ausgeführt wird, die Gesamtanzahl aller Artikel im Lager ermittelt, die mehr als 20 DM kosten. Die DO WHILE-Schleife wird beendet und die Gesamtanzahl angezeigt.
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE products && Opens Products table
SET TALK OFF
gnStockTot = 0
DO WHILE .T. && Begins loop
IF EOF( )
EXIT
ENDIF
IF unit_price < 20
SKIP
LOOP
ENDIF
gnStockTot = gnStockTot + in_stock
SKIP
ENDDO && Ends loop
CLEAR
? 'Total items in stock valued over 20 dollars:'
?? gnStockTot
Siehe auch
DO CASE ... ENDCASE | FOR EACH ... ENDFOR | FOR ... ENDFOR | IF ... ENDIF | IIF( ) | SCAN ... ENDSCAN