Skip to main content

Dichiarazione ST: CASE

L'istruzione CASE è una struttura di controllo condizionale che fa sì che un'istruzione o una sezione di un'istruzione venga eseguita solo in una condizione specifica. La sezione eseguita viene determinata confrontando la condizione e l'etichetta.

Sintassi:

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

condizione

Variabile intera per la condizione

Esempio: iCondition

Il valore delle variabili viene confrontato con le etichette dichiarate nel costrutto.

All'interno di un'istruzione CASE è possibile utilizzare qualsiasi numero di etichette (minimo: 2). Altrimenti, il costrutto può essere visualizzato più chiaramente con un costrutto IF-THEN-ELSE.

Tutte le etichette devono avere valori diversi.

etichetta-n

Espressione costante, letterale o costante con lo stesso tipo di dati della condizione

Funziona come un'etichetta (obiettivo del salto) all'interno del costrutto CASE.

Esempio: 1, 5, c_ONE, c_TWO

Se questo valore è uguale a condizione, vengono eseguite le seguenti istruzioni.

Se questo valore non è uguale a condizione, la rispettiva istruzione viene ignorata e il sistema passa all'etichetta successiva.

<etichetta-n >, < etichetta-n1>

Elenco separato da virgole con più etichette che fungono da obiettivi di salto

Esempio: 1, 5

Se una delle etichette corrisponde alla condizione condizione, viene quindi eseguita la sezione seguente.

<etichetta-n1>..<etichetta-n2>

Intervallo con etichetta del limite inferiore e superiore

10..20

Se la condizione condizione assume un valore compreso nell'intervallo da etichetta-n1 A etichetta-n2, viene quindi eseguita la sezione seguente.

ELSE

Facoltativo, massimo una volta

Destinazione di salto predefinita a cui si passa se tutte le etichette precedenti non corrispondere alla condizione.

istruzione-n

ELSE-istruzione

Enunciato o segmento di enunciato composto da più enunciati

Un'istruzione termina sempre con un punto e virgola (;).

Esempio 72. Esempio
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