2 つの式に対して短絡包括論理和演算を実行します。
構文
result = expression1 OrElse expression2
部品
result
必須。 任意の Boolean
式。
expression1
必須。 任意の Boolean
式。
expression2
必須。 任意の Boolean
式。
注釈
コンパイルされたコードが別の式の結果に応じて 1 つの式の評価をバイパスできる場合、論理演算は ショートサーキット と言われます。 評価された最初の式の結果によって操作の最終的な結果が決定される場合、最終的な結果を変更できないため、2 番目の式を評価する必要はありません。 省略すると、バイパスされた式が複雑な場合、またはプロシージャ呼び出しが含まれている場合に、パフォーマンスが向上する可能性があります。
いずれかの式または両方の式が True
と評価された場合、 result
は True
。 次の表は、 result
の決定方法を示しています。
expression1 が |
expression2 は |
result の値は次の値です。 |
---|---|---|
True |
(評価されません) | True |
False |
True |
True |
False |
False |
False |
データ型
OrElse
演算子は、ブール型に対してのみ定義されます。 Visual Basic では、式を評価する前に、必要に応じて各オペランドを Boolean
に変換します。 結果を数値型に割り当てると、False
が0
になり、True
が-1
になるように、結果がBoolean
からその型に変換されます。
詳細については、「 ブール型変換」を参照してください。
オーバーロード
Or 演算子と IsTrue 演算子はオーバーロードできます。つまり、オペランドがそのクラスまたは構造体の型を持つ場合、クラスまたは構造体は動作を再定義できます。
Or
演算子とIsTrue
演算子をオーバーロードすると、OrElse
演算子の動作に影響します。 コードで、Or
とIsTrue
をオーバーロードするクラスまたは構造体でOrElse
を使用する場合は、再定義された動作を理解していることを確認してください。 詳細については、「 演算子プロシージャ」を参照してください。
例 1
次の例では、 OrElse
演算子を使用して、2 つの式に対して論理和演算を実行します。 結果は、2 つの式のいずれかが true かどうかを表す Boolean
値です。 最初の式が True
場合、2 番目の式は評価されません。
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b
前の例では、それぞれ True
、 True
、および False
の結果が生成されます。
firstCheck
の計算では、最初の式は既にTrue
されているため、2 番目の式は評価されません。 ただし、2 番目の式は、 secondCheck
の計算で評価されます。
例 2
次の例は、2 つのプロシージャ呼び出しを含む If
...Then
ステートメントを示しています。 最初の呼び出しで True
が返された場合、2 番目のプロシージャは呼び出されません。 2 番目のプロシージャが、コードのこのセクションの実行時に常に実行する必要がある重要なタスクを実行すると、予期しない結果が発生する可能性があります。
If testFunction(5) = True OrElse otherFunction(4) = True Then
' If testFunction(5) is True, otherFunction(4) is not called.
' Insert code to be executed.
End If
こちらも参照ください
.NET