Or 演算子 (Visual Basic)

2 つの Boolean 式の場合は論理和演算、2 つの数値式の場合はビットごとの論理和演算を実行します。

構文

result = expression1 Or expression2  

指定項目

result
必須です。 任意の Boolean または数値式。 Boolean の比較の場合、result は 2 つの Boolean 値の包含論理和演算となります。 ビットごとの演算の場合、result は 2 つの数値ビット パターンのビットごとの包含論理和演算を表す数値です。

expression1
必須です。 任意の Boolean または数値式。

expression2
必須です。 任意の Boolean または数値式。

Remarks

Boolean の比較では、expression1expression2 の両方が False に評価された場合にのみ、resultFalse になります。 次の表は、result がどのように決定されるかを示しています。

expression1 が次の場合 かつ、expression2 が次の場合 result の値は次のようになります
True True True
True False True
False True True
False False False

注意

Boolean の比較では、Or 演算子は常に両方の式を評価します。これには、プロシージャ呼び出しの実行を含めることができます。 OrElse 演算子は "ショートサーキット" を実行します。つまり、expression1True の場合、expression2 は評価されません。

ビットごとの演算の場合、Or 演算子は、2 つの数値式でまったく同じ位置にあるビットのビットごとの比較を実行し、次の表に従って result に対応するビットを設定します。

expression1 内のビットが次の場合 かつ、expression2 内のビットが次の場合 result 内のビットは次のようになります
1 1 1
1 0 1
0 1 1
0 0 0

注意

論理演算子とビット演算子は、他の算術演算子および関係演算子より優先順位が低いので、正確に実行するために、ビットごとの演算はかっこで囲む必要があります。

データの種類

オペランドが 1 つの Boolean 式と 1 つの数値式で構成されている場合、Visual Basic は Boolean 式を数値に変換し (True の場合は 1、False の場合は 0)、ビットごとの演算を実行します。

Boolean の比較の場合、結果のデータ型は Boolean になります。 ビットごとの比較の場合、結果のデータ型は expression1 および expression2 のデータ型に適した数値型になります。 「演算子の結果のデータ型」の「関係とビットごとの比較」の表を参照してください。

オーバーロード

Or 演算子は "オーバーロード" できます。つまり、オペランドがクラスまたは構造体の型を持っているときに、クラスまたは構造体はその動作を再定義できます。 コードで、そのようなクラスまたは構造体に対してこの演算子が使用される場合は、再定義された動作を理解していることを確認してください。 詳細については、「 Operator Procedures」を参照してください。

例 1

次の例では、Or 演算子を使用して、2 つの式の包含論理和演算を実行します。 結果は、2 つの式のいずれかが True かどうかを表す Boolean 値です。

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Or b > c
secondCheck = b > a Or b > c
thirdCheck = b > a Or c > b

前の例では、それぞれ TrueTrueFalse の結果が生成されます。

例 2

次の例では、Or 演算子を使用して、2 つの数値式の個々のビットに対して包含論理和演算を実行します。 オペランドの対応するビットのいずれかが 1 に設定されている場合、結果パターンのビットが設定されます。

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Or b)
secondPattern = (a Or c)
thirdPattern = (b Or c)

前の例では、それぞれ 10、14、14 の結果が生成されます。

関連項目