Boolean 演算子 (Visual Basic 6.0 ユーザー向け)
更新 : 2007 年 11 月
Visual Basic 2008 では、2 つの Boolean 演算子が削除され、パフォーマンスを向上させる別の 2 つの演算子が追加されています。
Visual Basic 6.0
Visual Basic 6.0 では、Boolean 演算子 (And、Or、Not、および Xor) は、オペランドのすべての式を常に評価します。
2 つの式の論理等値演算および論理包含演算を実行するには、Eqv 演算子と Imp 演算子を使用します。
Visual Basic 2008
Visual Basic 2008 でも、And、Or、Not、および Xor の各演算子は、オペランドに提供されたすべての式を評価します。また、Visual Basic 2008 では、AndAlso および OrElse という新しい演算子が導入されています。この演算子を使用すると、論理評価を "ショートサーキットさせる" ことによって実行時間を短縮できます。AndAlso 演算子の 1 番目のオペランドが False に評価されると、2 番目のオペランドは評価されません。同様に、OrElse 演算子の 1 番目のオペランドが True に評価されると、2 番目のオペランドは評価されません。
メモ : |
---|
ショートサーキット演算子の使用には注意が必要です。2 番目のオペランドにプロシージャ呼び出しが含まれている場合、演算子が実行されるたびにプロシージャが呼び出されるとは限りません。 |
Eqv 演算子と Imp 演算子はサポートされません。論理評価では、Eqv の代わりに等号 (=) 比較演算子を使用します。ビットごとの評価では、次の例のように Not と XOr を使用します。
Result = Not (A XOr B) 'Same as A Eqv B
'(True unless A and B are not both True or False
論理 Imp 演算子は、次に示すように、Not 演算子および Or 演算子を使用した式で置き換えることができます。
Result = (Not A) Or B 'Same as A Imp B
'(True unless A is True and B is False.)
ビットごとの Imp 演算子も、数値オペランドに Not 演算子および Or 演算子を使用して、同じ方法で置き換えることができます。