複合条件は、単純条件、結合条件、複合条件のうち、任意のものを論理演算子により結合するか、または論理否定することによって作られます。
それぞれの論理演算子の前後には、スペースが 1 つずつなければなりません。 次の表は、論理演算子とその意味を示しています。
論理演算子 | 名前 | 意味 |
---|---|---|
AND | 論理積 | 両方の条件が真であるときは、真理値は真である。 |
OR | 包含 OR (包含論理和) | いずれか一方または両方の条件が真であるときに、真である。 |
NOT | 論理否定 | 真理値の逆 (条件が偽であれば、真理値は真である)。 |
括弧で囲まれていない限り、次の規則が (番号の順で) 優先します。
複合条件 (括弧で囲まれているかどうかに関係なく) の真理値は、次の値のいずれかに関して、記述されたすべての論理演算子が相互に作用した結果の真理値です。
複合条件は、次のいずれかとすることができます。
単純条件を否定するには、論理演算子 NOT を使用します。否定単純条件は、単純条件の反対の真理値を与えます。
否定単純条件 - 形式 >>-NOT--単純条件-----------------------------------------------><
複数の条件を論理的に結合して、1 つの結合条件を作成できます。
結合条件 - 形式 .-----------------. V | >>-条件-1----+-AND-+--条件-2-+--------------------------------->< '-OR--'
次のどの条件でも結合できます。
結合条件の エレメント | 左端 | 左端ではない場合、 以下のものがその 直前に指定可能。 | 右端 | 右端ではない場合、 以下のものがその 直後に指定可能。 |
---|---|---|---|---|
単純条件 | あり |
OR NOT AND ( | あり |
OR AND ) |
OR AND | なし |
単純条件 ) | なし |
単純条件 NOT ( |
NOT | あり |
OR AND ( | なし |
単純条件 ( |
( | あり |
OR NOT AND ( | なし |
単純条件 NOT ( |
) | なし |
単純条件 ) | あり |
OR AND ) |
1 つの結合条件の中で AND または OR のいずれか一方 (両方ではなく) を排他的に使用するときは、括弧は不要です。
ただし、演算子およびオペランドの正しい論理関係を維持するために暗黙の優先規則を変更する場合には、括弧が必要になることがあります。
左括弧と右括弧は対になっていなければならず、それぞれの左括弧はそれに対応する右括弧より左側になければなりません。
以下の表は、論理演算子と条件 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 |
---|---|---|---|---|---|---|---|
真 | 真 | 真 | 真 | 偽 | 偽 | 偽 | 真 |
偽 | 真 | 偽 | 真 | 真 | 真 | 偽 | 真 |
真 | 偽 | 偽 | 真 | 真 | 偽 | 偽 | 偽 |
偽 | 偽 | 偽 | 偽 | 真 | 偽 | 真 | 真 |
関連情報
括弧を使用した場合には、結合条件の論理演算は次の順序で行われます。
括弧を使用しない場合 (あるいは、括弧のレベルが同順位でない場合) には、結合条件は次の順序で評価されます。
結合条件のコンポーネントである条件は、左から右へ評価されます。 ある条件の真理値が、結合条件の前のエレメントの評価によって影響を受けない場合には、これらのエレメントの評価は行われません。 ただし、その条件の真理値は、この段落の始めに述べたように、常に同じになります (あたかもその条件全体が演算されているかのように)。
値は、それらを含む条件が評価されるとき、算術式および関数に設定されます。 同様に否定条件は、それらが示す複合条件を評価する必要が生じたとき、評価されます。
たとえば、次のとおりです。
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))
比較条件が括弧を間に入れずに連続して記述されている場合、最初の比較条件の後の任意の比較条件を、以下の 2 つの方法のいずれかで省略することが可能です。
省略された結合比較条件 - 形式 >>-比較条件-----------------------------------------------------> .---------------------------------------------------------------. V | >----+-AND-+-+----+-+----------+-+------------------+-オブジェクト-+->< '-OR--' '-IS-' | (1) | +-GREATER-+------+-+ '-NOT------' | '-THAN-' | +->----------------+ +-LESS--+------+---+ | '-THAN-' | +-<----------------+ +-EQUAL--+----+----+ | '-TO-' | +-=----------------+ +-| 「以上」条件 |-+ +->=---------------+ +-| 「以下」条件 |-+ '-<=---------------' 「以上」条件: |--GREATER--+------+--OR EQUAL--+----+--------------------------| '-THAN-' '-TO-' 「以下」条件: |--LESS--+------+--OR EQUAL--+----+-----------------------------| '-THAN-' '-TO-'
注:
オブジェクトとは、その前にある比較条件のサブジェクトと比較できる、任意のデータ項目または式のことです。
連続する一連の比較条件では、両方の省略形を指定できます。省略形の条件は次のように評価されます。
その結果の結合条件は 表 27 に示したような、結合条件でのエレメントの順序の規則に従っていなければなりません。
NOT という語は、NOT GREATER THAN、NOT >、NOT LESS THAN、NOT <、 NOT EQUAL TO、および NOT = の形式の関係演算子の一部であると見なされます。
他の位置にある NOT は、論理演算子であると見なされます (したがって、否定比較条件となります)。
以下の例では、省略された結合比較条件に括弧が付いたものと付いていないもの、およびそれらと同じものを省略していない形が示されています。
省略された結合比較条件 | 同等の内容 |
---|---|
A = B AND NOT < C OR D | ((A = B) AND (A NOT < C)) OR (A NOT < D) |
A NOT > B OR C | (A NOT > B) OR (A NOT > C) |
NOT A = B OR C | (NOT (A = B)) OR (A = C) |
NOT (A = B OR < C) | NOT ((A = B) OR (A < C)) |
NOT (A NOT = B AND C AND NOT D) | NOT ((((A NOT = B) AND (A NOT = C)) AND (NOT (A NOT = D)))) |