Freigeben über


DO CASE ... ENDCASE-Befehl

Führt die erste Befehlsgruppe aus, deren Bedingungsausdruck den Wert Wahr (.T.) ergibt.

DO CASE
   CASE lExpression1Commands
   [CASE lExpression2Commands
   ...
   CASE lExpressionNCommands]
   [OTHERWISE Commands]
ENDCASE

Parameter

  • CASE lExpression1Commands ...
    Die Befehle des ersten gefundenen CASE-Ausdrucks, der den Wert Wahr (.T.) ergibt, werden ausgeführt. Die Ausführung dieser Befehlsgruppe wird so lange fortgesetzt, bis die nächste CASE- oder ENDCASE-Anweisung auftritt. Danach wird sie mit dem ersten Befehl nach ENDCASE fortgesetzt.

    Ergibt ein CASE-Ausdruck den Wert Falsch (.F.), wird die Befehlsgruppe zwischen diesem Ausdruck und der nächsten CASE-Klausel ignoriert.

    Es wird nur eine Befehlsgruppe ausgeführt. Dies sind die ersten Befehle, deren CASE-Ausdruck den Wert Wahr (.T.) ergibt. Alle weiteren CASE-Ausdrücke, die den Wert Wahr (.T.) ergeben, werden ignoriert.

  • OTHERWISE Commands
    Ergeben alle CASE-Ausdrücke den Wert Falsch (.F.), bestimmt OTHERWISE, ob eine weitere Befehlsgruppe ausgeführt wird.

    • Wird OTHERWISE einbezogen, werden die Befehle nach OTHERWISE ausgeführt und danach die Programmausführung mit dem ersten Befehl nach ENDCASE fortgesetzt.
    • Wenn Sie OTHERWISE nicht angeben, wird die Programmausführung sofort mit dem ersten Befehl nach ENDCASE fortgesetzt.

Hinweise

Mit DO CASE wird eine Gruppe von Visual FoxPro-Befehlen in Abhängigkeit vom Wert eines logischen Ausdrucks ausgeführt. Bei der Ausführung von DO CASE werden aufeinander folgende logische Ausdrücke ausgewertet. Die Werte dieser Ausdrücke legen dann fest, welche Befehlsgruppen ausgeführt werden.

Sie können hinter DO CASE und ENDCASE auf derselben Zeile Kommentare eingeben. Diese Kommentare werden beim Kompilieren und Ausführen des Programms ignoriert.

Beispiel

In diesem Beispiel wertet Visual FoxPro jede CASE-Klausel aus, bis die MONTH-Variable in einer der Listen gefunden wurde. Die entsprechende Zeichenfolge wird in der Variablen rpt_title gespeichert und die DO CASE-Struktur verlassen.

STORE CMONTH(DATE( )) TO month  && The month today
   
DO CASE  && Begins loop
   
   CASE INLIST(month,'January','February','March')
      STORE 'First Quarter Earnings' TO rpt_title
   
   CASE INLIST(month,'April','May','June')
      STORE 'Second Quarter Earnings' TO rpt_title
   
   CASE INLIST(month,'July','August','September')
      STORE 'Third Quarter Earnings' TO rpt_title
   
   OTHERWISE
      STORE 'Fourth Quarter Earnings' TO rpt_title
ENDCASE  && Ends loop
WAIT WINDOW rpt_title NOWAIT

Siehe auch

DO WHILE ... ENDDO | EXIT | FOR EACH ... ENDFOR | FOR ... ENDFOR | IF ... ENDIF | IIF( ) | SCAN ... ENDSCAN