Freigeben über


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