2 つ以上の条件を論理的に結合することによって、複合条件を形成することができます。
| フォーマット |
|---|
|
次のどの条件でも結合できます。
| 複合条件エレメント | 左端 | 左端にないときは、次のものが直前にある | 右端 | 右端にないときは、次のものが直後にある |
|---|---|---|---|---|
| 単純条件 | はい | OR
NOT AND ( |
はい | OR
AND ) |
| OR
AND |
いいえ | 単純条件
) |
いいえ | 単純条件
NOT ( |
| NOT | はい | OR
AND ( |
いいえ | 単純条件
( |
| ( | はい | OR
NOT AND ( |
いいえ | 単純条件
NOT ( |
| ) | いいえ | 単純条件
) |
はい | OR
AND ) |
1 つの複合条件の中で AND か OR のどちらか一方だけしか使用されていない場合は、 括弧を付ける必要はありません。 ただし、演算子とオペランドの正しい論理関係を保持するために、 暗黙の優先順位規則に変更を加える場合には括弧を付けることもできます。
左括弧と右括弧には 1 対 1 の対応関係がなければなりません。 また左括弧は対応した右括弧の左側になければなりません。
以下の表は、論理演算子と条件 C1 および条件 C2 の間の関係をわかりやすく示したものです。
| C1 の
値 |
C2 の
値 |
C1
AND C2 |
C1 OR
C2 |
NOT
(C1 AND C2) |
NOT
C1 AND C2 |
NOT
(C1 OR C2) |
NOT C1
OR C2 |
|---|---|---|---|---|---|---|---|
| 真 | 真 | 真 | 真 | 偽 | 偽 | 偽 | 真 |
| 偽 | 真 | 偽 | 真 | 真 | 真 | 偽 | 真 |
| 真 | 偽 | 偽 | 真 | 真 | 偽 | 偽 | 偽 |
| 偽 | 偽 | 偽 | 偽 | 真 | 偽 | 真 | 真 |
括弧は、明示による場合も暗黙による場合も、複合条件内の包含レベルを定義します。 同じ包含レベルで論理演算子 AND または OR だけで結合された 2 つ以上の条件は、 複合条件内の 1 つの階層レベルを確立します。したがって、複合条件全体が複数のレベルからなる階層のネスト構造であり、 複合条件全体は、最も包括的な階層レベルを表します。
ここでは、複合条件全体の中での条件の評価は、条件の左側から始まります。ある階層レベル内のコンポーネントである接続条件は左から右への順に評価され、 その階層レベルの評価は、その階層レベル内のコンポーネントであるすべての接続条件が評価されたかどうかに関係なく、その階層レベルに関する真の値が決定されると終了します。
算術式と算術関数に関する値は、それらを含む複合条件が評価される場合には、 その評価が行われたときに設定されます。同様に否定条件は、それらの条件が表現している複合条件を評価する必要がある場合には、それが実行されたときに評価されます。以下に例を示します。
NOT A IS GREATER THAN B OR A + B IS EQUAL TO C AND D IS POSITIVE
上記の例は、括弧が次のように付いているかのように評価されます。
(NOT (A IS GREATER THAN B)) OR (((A + B) IS EQUAL TO C) AND (D IS POSITIVE))