論理式は、比較などブール式の結果を組み合わせることで複雑な条件式を構成します。
<logical_operand> or <logical_operand> -- true if either operandis true <logical_operand> and <logical_operand> -- true if both operands are true [ not ] <logical_operand>-- true if operand is false
ここで、 <logical_operand> は次のいずれかになります。
論理演算子の演算はブール値でだけ行われます。したがって、<logical_operand> はすべて true または false になります。
数値演算式の場合、<logical_expr> は再帰的定義です。つまり、論理オペランドが別の論理式になることがあります。
また、論理式には任意の順番で and 、 or 、 not を含めることができ、評価の順序は以下の優先順位(優先順位の高い順)で定義されます。
つまり、カッコで囲まれていない論理式では、 not は and の前に評価され、and は or の前に評価されます。
論理演算子の優先順位は、比較演算子、数値演算、関数呼び出しなどの優先順位よりも低いため、これらの演算は常に規則どおり論理演算子の前に評価されます。