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
| 条件の整数変数 例: 変数の値は、構造内で宣言されたラベルと比較されます。 CASE ステートメント内では、任意の数のラベル (最小: 2) を使用できます。それ以外の場合、IF-THEN-ELSE 構造を使用すると、構造をより明確に表示できます。 すべてのラベルは異なる値を持つ必要があります。 |
| 条件と同じデータ型の定数、リテラル、または定数式 CASE 構造内のラベル (ジャンプ ターゲット) として機能します。 例: この値が次の値に等しい場合 状態、その後、次のステートメントが実行されます。 この値が次と等しくない場合 状態の場合、それぞれのステートメントは無視され、システムは次のラベルにジャンプします。 |
| ジャンプターゲットとして機能する複数のラベルを含むカンマ区切りのリスト 例: いずれかのラベルが条件に一致する場合 状態に続いて、次のセクションを実行します。 |
| 下限値と上限値のラベルが付いた範囲
条件が 状態 からの範囲の値を取ります ラベル-n1 に ラベル-n2に続いて、次のセクションを実行します。 |
| オプション、最大 1 回 以前のすべてのラベルが存在する場合にジャンプされるデフォルトのジャンプ ターゲット しないでください 条件に合う。 |
| ステートメント、または複数のステートメントで構成されるステートメントセグメント ステートメントは常にセミコロン ( |
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