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 番目のオペランドは評価されません。

8067cy78.alert_note(ja-jp,VS.90).gifメモ :

ショートサーキット演算子の使用には注意が必要です。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 演算子を使用して、同じ方法で置き換えることができます。

参照

概念

プログラミング要素のサポートに関する変更の概要

参照

And 演算子 (Visual Basic)

AndAlso 演算子

Or 演算子 (Visual Basic)

OrElse 演算子

Not 演算子 (Visual Basic)

Xor 演算子 (Visual Basic)

TimeSpan