Or 演算子 (Visual Basic)
2 つの Boolean
式の場合は論理和演算、2 つの数値式の場合はビットごとの論理和演算を実行します。
構文
result = expression1 Or expression2
指定項目
result
必須です。 任意の Boolean
または数値式。 Boolean
の比較の場合、result
は 2 つの Boolean
値の包含論理和演算となります。 ビットごとの演算の場合、result
は 2 つの数値ビット パターンのビットごとの包含論理和演算を表す数値です。
expression1
必須です。 任意の Boolean
または数値式。
expression2
必須です。 任意の Boolean
または数値式。
Remarks
Boolean
の比較では、expression1
と expression2
の両方が False
に評価された場合にのみ、result
は False
になります。 次の表は、result
がどのように決定されるかを示しています。
expression1 が次の場合 |
かつ、expression2 が次の場合 |
result の値は次のようになります |
---|---|---|
True |
True |
True |
True |
False |
True |
False |
True |
True |
False |
False |
False |
注意
Boolean
の比較では、Or
演算子は常に両方の式を評価します。これには、プロシージャ呼び出しの実行を含めることができます。 OrElse 演算子は "ショートサーキット" を実行します。つまり、expression1
が True
の場合、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
前の例では、それぞれ True
、True
、False
の結果が生成されます。
例 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 の結果が生成されます。
関連項目
.NET