Skip to main content

Declaración ST: CASE

La declaración CASE es una estructura de control condicional que hace que una declaración o una sección de una declaración se ejecute solo bajo una condición específica. La sección que se ejecuta se determina comparando la condición y la etiqueta.

Sintaxis:

CASE <condition> OF
    <label-1> : 
        <instruction-1>
    <label-2> : 
        <instruction-2>
    <label-3, label-4, label-5> : 
        <instruction-3>
    <label-6 .. labe-10> : 
        <instruction-4>
    <label-n> : 
        <instruction-n>
    ELSE <ELSE-instruction>
END_CASE

condición

Variable entera para la condición

Ejemplo: iCondition

El valor de las variables se compara con las etiquetas declaradas en la construcción.

Se puede utilizar cualquier número de etiquetas (mínimo: 2) dentro de una declaración CASE. De lo contrario, la construcción se puede mostrar más claramente con una construcción IF-THEN-ELSE.

Todas las etiquetas deben tener valores diferentes.

etiqueta-n

Expresión constante, literal o constante con el mismo tipo de datos que la condición

Actúa como una etiqueta (objetivo de salto) dentro de la construcción CASE.

Ejemplo: 1, 5, c_ONE, c_TWO

Si este valor es igual a condición, luego se ejecutan las siguientes declaraciones.

Si este valor no es igual a condición, entonces se ignora la declaración respectiva y el sistema salta a la siguiente etiqueta.

<etiqueta-n >, < etiqueta-n1>

Lista separada por comas con múltiples etiquetas que actúan como objetivos de salto

Ejemplo: 1, 5

Si una de las etiquetas coincide con la condición condición, luego se ejecuta la siguiente sección.

<etiqueta-n1>..<etiqueta-n2>

Rango con etiqueta de límite inferior y superior

10..20

Si la condición condición toma un valor del rango de etiqueta-n1 a etiqueta-n2, luego se ejecuta la siguiente sección.

ELSE

Opcional, máximo una vez

Objetivo de salto predeterminado al que se salta si todas las etiquetas anteriores no coincide con la condición.

instrucción-n

ELSE-instrucción

Declaración o segmento de declaración que consta de varias declaraciones

Una declaración siempre termina con un punto y coma (;).

ejemplo 72. Ejemplo
CASE iCondition OF
    1, 5, c_ONE, C_TWO: 
        bVar1 := TRUE;
        bVar3 := FALSE;
    2: 
        bVar2 := FALSE;
        bVar3 := TRUE;
    10..20: 
        bVar1 := TRUE;
        bVar3 := TRUE;
    ELSE
        bVar1 := NOT bVar1;
        bVar2 := bVar1 OR bVar2;
END_CASE