条件式の評価
括弧を使用した場合には、結合条件の論理演算は次の順序で行われます。
- 括弧内の条件が最初に評価されます。
- 複数の括弧でネストされている場合には、最も内側の条件から最も外側の条件の順で評価が行われます。
括弧を使用しない場合 (あるいは、括弧のレベルが同順位でない場合) には、結合条件は次の順序で評価されます。
- 算術式
- 単純条件 (次の順序で)
- 比較条件
- クラス
- 条件名
- スイッチ状況
- 符号条件
- 否定単純条件 (項目 2 と同じ順序)
- 結合条件 (次の順序で)
- AND
- OR
- 否定結合条件 (次の順序で)
- AND
- OR
- 同じ評価順序レベルの連続オペランドは、左から右へ評価されます。 ただし、結合条件の真理値は、コンポーネントのすべての条件の真理値を評価せずに決定されることがあります。
結合条件のコンポーネントである条件は、左から右へ評価されます。 ある条件の真理値が、結合条件の前のエレメントの評価によって影響を受けない場合には、これらのエレメントの評価は行われません。 ただし、その条件の真理値は、この段落の始めに述べたように、常に同じになります (あたかもその条件全体が演算されているかのように)。
値は、それらを含む条件が評価されるとき、算術式および関数に設定されます。 同様に否定条件は、それらが示す複合条件を評価する必要が生じたとき、評価されます。
例えば、次のとおりです。
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))
この例での評価順序は次のとおりです。
- (NOT (A IS GREATER THAN B)) が評価されます。 これが真の場合には、式が真なので、条件の残りの部分は評価されません。
- (A+B) が評価され、中間結果 x が求められます。
- (x IS EQUAL TO C) が評価されます。 これが偽の場合には、式が偽なので、条件の残りの部分は評価されません。
- (D IS POSITIVE) が評価され、式の最終的な真理値が求められます。