Share via


DO CASE ... ENDCASE (Comando)

Ejecuta el primer conjunto de comandos cuya expresión condicional dé como resultado verdadero (.T.).

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

Parámetros

  • CASE lExpression1 Commands ...
    Cuando se encuentre la primera expresión CASE con el valor verdadero (.T.), se ejecutará el conjunto de comandos que haya a continuación. La ejecución del conjunto de comandos continuará hasta encontrar la siguiente expresión CASE o ENDCASE. La ejecución se reanuda en el comando que hay inmediatamente a continuación de ENDCASE.

    Si una expresión CASE tiene el valor falso (.F.), se pasará por alto el conjunto de comandos que le siguen hasta la siguiente cláusula CASE.

    Sólo se ejecuta un conjunto de comandos. Se trata de los primeros comandos cuya expresión CASE se evalúe con el resultado verdadero (.T.). Se pasan por alto todas las expresiones CASE posteriores que tengan el valor verdadero (.T.).

  • OTHERWISE Commands
    Si todas las expresiones CASE dan como resultado falso (.F.), OTHERWISE determinará si se ejecuta otro conjunto de comandos adicional.

    • Si incluye OTHERWISE, se ejecutará el conjunto de comandos que sigue a OTHERWISE y la ejecución saltará al primer comando que hay a continuación de ENDCASE.
    • Si omite OTHERWISE, la ejecución saltará al primer comando que hay a continuación de ENDCASE.

Observaciones

DO CASE se utiliza para ejecutar un conjunto de comandos de Visual FoxPro según el valor de una expresión lógica. Cuando se ejecuta DO CASE, se evalúan cada una de las expresiones lógicas sucesivas; los valores de las expresiones determinan el conjunto de comandos que se ejecuta.

Se admiten comentarios después de DO CASE y ENDCASE, si se incluyen en la misma línea. Estos comentarios se pasan por alto durante la compilación y ejecución del programa.

Ejemplo

En este ejemplo Visual FoxPro evalúa cada cláusula CASE hasta que se encuentra la variable MONTH en una de las listas. La cadena apropiada se almacena en la variable rpt_title y se sale de la estructura DO CASE.

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

Vea también

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