Solaris 動的トレースガイド

論理演算子

D プログラムでは、次の二項論理演算子を使用できます。最初の 2 つの演算子は、対応する ANSI-C 演算子と同じ機能を持っています。

表 2–8 D の論理演算子

&&

論理積「AND」: 両方のオペランドが真の場合、真

||

論理和「OR」: いずれか一方のオペランド、または両方のオペランドが真の場合、真

^^

排他的論理和「XOR」: いずれか一方のオペランドだけが真の場合、真

論理演算子は、D の述語の記述によく使用されます。論理積 AND 演算子は、短絡評価を行います。 左側のオペランドが偽の場合、右側の式は評価されません。論理和 OR 演算子も短絡評価を行います。 左側のオペランドが真の場合、右側の式は評価されません。排他的論理和 XOR 演算子は、短絡評価を行いません。 必ず両方の式のオペランドが評価されます。

二項論理演算子のほかに、単項演算子 ! も使用できます。この単項演算子は、単一のオペランドの論理否定を実行します。 つまり、0 オペランドを 1 に、0 以外のオペランドを 0 に変換します。!== 0 は機能上同等ですが、D プログラムでは、慣例上、ブール値を表す整数を操作するときは !、ブール型以外の整数を操作するときは == 0 を使用します。

論理演算子は、整数型またはポインタ型のオペランドに適用されます。論理演算子は、ポインタオペランドを符号なしの整数値と見なします。D のすべての論理演算子、関係演算子の場合と同じく、0 以外の整数値を持つオペランドは真、整数値 0 を持つオペランドは偽になります。