OrElse 演算子 (Visual Basic)

2 つの式の短絡包含的論理和を求めます。

構文

result = expression1 OrElse expression2  

指定項目

result
必須です。 任意のブール型 ( Boolean ) の式を指定します。

expression1
必須です。 任意のブール型 ( Boolean ) の式を指定します。

expression2
必須です。 任意のブール型 ( Boolean ) の式を指定します。

Remarks

コンパイルされたコードが、ある式の評価を別の式の結果に応じてバイパスできる場合、論理演算は "短絡" であると言われます。 最初に評価された式の結果によって演算の最終結果が決まる場合、最終結果を変更できないため、2 番目の式を評価する必要はありません。 バイパスされた式が複雑な場合や、プロシージャ呼び出しが関係している場合に、短絡によってパフォーマンスを向上させることができます。

いずれかまたは両方の式が True に評価される場合、resultTrue です。 次の表は、result がどのように決定されるかを示しています。

expression1 が次の場合 かつ、expression2 が次の場合 result の値は次のようになります
True (評価されていない) True
False True True
False False False

データの種類

OrElse 演算子は Boolean データ型に対してのみ定義されます。 Visual Basic は、式を評価する前に、必要に応じて各オペランドを Boolean に変換します。 結果を数値型に代入すると、Visual Basic によって Boolean からその型への変換が行われ、False0 になり、True-1 になります。 詳細については、ブール型変換に関する記事をご覧ください。

オーバーロード

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

例 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

前の例では、それぞれ TrueTrueFalse の結果が得られます。 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

関連項目