Skip to main content

STステートメント:CASE

CASE ステートメントは、ステートメントまたはステートメントのセクションを特定の条件下でのみ実行する条件付き制御構造です。実行するセクションは、条件とラベルを比較して決定されます。

構文:

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

状態

条件の整数変数

例: iCondition

変数の値は、構造内で宣言されたラベルと比較されます。

CASE ステートメント内では、任意の数のラベル (最小: 2) を使用できます。それ以外の場合、IF-THEN-ELSE 構造を使用すると、構造をより明確に表示できます。

すべてのラベルは異なる値を持つ必要があります。

ラベル-n

条件と同じデータ型の定数、リテラル、または定数式

CASE 構造内のラベル (ジャンプ ターゲット) として機能します。

例: 15c_ONEc_TWO

この値が次の値に等しい場合 状態、その後、次のステートメントが実行されます。

この値が次と等しくない場合 状態の場合、それぞれのステートメントは無視され、システムは次のラベルにジャンプします。

<ラベル-n >, < ラベル-n1>

ジャンプターゲットとして機能する複数のラベルを含むカンマ区切りのリスト

例: 1, 5

いずれかのラベルが条件に一致する場合 状態に続いて、次のセクションを実行します。

<ラベル-n1>..<ラベル-n2>

下限値と上限値のラベルが付いた範囲

10..20

条件が 状態 からの範囲の値を取ります ラベル-n1ラベル-n2に続いて、次のセクションを実行します。

ELSE

オプション、最大 1 回

以前のすべてのラベルが存在する場合にジャンプされるデフォルトのジャンプ ターゲット しないでください 条件に合う。

命令-n

ELSE命令

ステートメント、または複数のステートメントで構成されるステートメントセグメント

ステートメントは常にセミコロン (;)。

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