DO CASE
 Ejecuta uno de varios bloques de sentencias dependiendo de una condición
------------------------------------------------------------------------------
 Sintaxis

     DO CASE
     CASE <lCondición1>
        <sentencias>...
     [CASE <lCondición2>]
        <sentencias>...
     [OTHERWISE]
        <sentencias>...
     END[CASE]

 Argumentos

     CASE <lCondición> define el bloque de sentencias que se van a
     ejecutar si <lCondición> resulta verdadera (.T.).

     OTHERWISE define el bloque de sentencias que se van a ejecutar si
     ninguna de las condiciones CASE especificadas resulta verdadera (.T.).

 Descripción

     DO CASE...ENDCASE es una estructura de control que ejecuta uno de
     varios posibles bloques de sentencias, dependiendo del resultado de
     evaluar las condiciones asociadas. Bifurca la ejecución a las
     sentencias situadas después de la primera condición que resulte
     verdadera. La ejecución prosigue hasta que se encuentra el siguiente
     CASE, OTHERWISE o ENDCASE. El control pasa entonces a la primera
     sentencia que siga a la próxima sentencia ENDCASE.

     Si ninguna de las condiciones CASE resulta verdadera, las sentencias
     que siguen a la sentencia OTHERWISE se ejecutan hasta la sentencia
     ENDCASE correspondiente. Si se omite una sentencia OTHERWISE, el
     control pasa a la primera sentencia que sigue a la sentencia ENDCASE
     correspondiente.

     Es posible anidar cualquier número de sentencias dentro de una
     sentencia DO CASE, incluyendo otras estructuras de control (es decir,
     DO WHILE y FOR). En una estructura DO CASE sencilla no existe un
     límite fijo en el número de sentencias CASE que puede contener.

     DO CASE...ENDCASE es idéntica a IF...ELSEIF...ENDIF sin que ninguna de
     estas sintaxis tenga alguna ventaja específica sobre la otra.

 Ejemplos

      Este ejemplo utiliza DO CASE en una estructura de menús para
        bifurcar el control según la selección del usuario:

        @ 3, 25 PROMPT "Primera opción"
        @ 4, 25 PROMPT "Segunda opción"
        MENU TO nOpcion
        //
        DO CASE
        CASE nOpcion = 0
           RETURN
        CASE nOpcion = 1
           OpcionUno()
        CASE nOpcion = 2
           OpcionDos()
        ENDCASE

 To download this example - click here.

See Also: BEGIN SEQUENCE DO WHILE FOR IF IF()