case

La sentencia EGL case marca el inicio de varios conjuntos de sentencias, entre los que sólo se ejecuta uno de los conjuntos como máximo. La sentencia case es equivalente a una sentencia C o Java switch que tengan una interrupción al final de cada cláusula case.

Diagrama de sintaxis para la sentencia case
criterio
Elemento, constante, expresión, literal o variable de sistema, incluyendo ConverseVar.eventKey o sysVar.systemType.

Si especifica criterio, cada una de las cláusulas when subsiguientes (si las hay) debe contener una o varias instancias de la expresiónCoincidente. Si no especifica criterio, cada una de las cláusulas when subsiguientes (si las hay) debe contener una expresión lógica.

when
El principio de una cláusula que sólo se invoca en estos casos:
  • Ha especificado un criterio y la cláusula when es la primera que contiene una expresiónCoincidente que es igual al criterio; o
  • No ha especificado un criterio y la cláusula when es la primera que contiene una expresión lógica que se evalúa en true.

Si desea que la cláusula when no tenga ninguna efecto cuando se invoca, codifíquela sin sentencias EGL.

Una sentencia case puede tener cualquier número de cláusulas when.

expresiónCoincidente
Uno de los siguientes valores:
  • Una expresión numérica o de serie
  • Un símbolo para la comparación con ConverseVar.eventKey o sysVar.systemType

El tipo primitivo del valor expresiónCoincidente debe ser compatible con el tipo primitivo del valor de criterio. Para obtener detalles acerca de la compatibilidad, consulte el apartado Expresiones lógicas.

expresiónLógica
Una expresión lógica.
sentencia
Una sentencia EGL.
otherwise
El principio de una cláusula que se invoca si no se ejecuta ninguna cláusula when.

Una vez que las sentencias han ejecutado una cláusula when u otherwise, el control pasa a la sentencia EGL que sigue inmediatamente al final de la sentencia case. El control no pasa a la siguiente cláusula when en ninguna circunstancia. Si no se ha invocado ninguna cláusula when y no se utiliza ninguna cláusula por omisión, el control también pasa a la sentencia inmediatamente posterior al final de la sentencia case y no se produce ninguna situación de error.

A continuación se ofrece un ejemplo de sentencia case:
  case (myRecord.requestID)
    when (1)
      myFirstFunction();
    when (2, 3, 4)
      try
        call myProgram;
      onException
        myCallFunction(12);
      end
    otherwise
      myDefaultFunction();
  end  

Si una sola cláusula incluye varias instancias de expresiónCoincidente (2, 3, 4 en el ejemplo anterior), la evaluación de dichas instancias se realiza de izquierda a derecha, y se detiene en cuanto encuentra una expresiónCoincidente que corresponde al valor de criterio.

Tareas relacionadas
Diagrama de sintaxis para sentencias y mandatos EGL

Consulta relacionada

Sentencias EGL
Expresiones lógicas
eventKey
systemType

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.