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
| Variabile intera per la condizione Esempio: 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. |
| 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: 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. |
| Elenco separato da virgole con più etichette che fungono da obiettivi di salto Esempio: Se una delle etichette corrisponde alla condizione condizione, viene quindi eseguita la sezione seguente. |
| Intervallo con etichetta del limite inferiore e superiore
Se la condizione condizione assume un valore compreso nell'intervallo da etichetta-n1 A etichetta-n2, viene quindi eseguita la sezione seguente. |
| Facoltativo, massimo una volta Destinazione di salto predefinita a cui si passa se tutte le etichette precedenti non corrispondere alla condizione. |
| Enunciato o segmento di enunciato composto da più enunciati Un'istruzione termina sempre con un punto e virgola ( |
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