Boolean 式 (Visual Basic)

ブール式は、ブール データ型 (True または False) の値に評価される式です。 Boolean 式では、複数の形式を使用できます。 最もシンプルなのは、次の例に示すように、Boolean 変数の値を Boolean リテラルに対して直接比較することです。

If newCustomer = True Then
    ' Insert code to execute if newCustomer = True.
Else
    ' Insert code to execute if newCustomer = False.
End If

= 演算子の 2 つの意味

代入ステートメント newCustomer = True は、前の例の式と同じように見えますが、別の関数を実行し、使い方が異なります。 前の例では、式 newCustomer = True はブール値を表し、= 記号は比較演算子として解釈されます。 スタンドアロン ステートメントでは、= 記号は代入演算子として解釈され、右側の値が左側の変数に代入されます。 次の例を使って説明します。

If newCustomer = True Then
    newCustomer = False
End If

詳細については、「値の比較」と「ステートメント」を参照してください。

比較演算子

=<><><=>= などの比較演算子によって、演算子の左側の式が演算子の右側の式と比較され、結果が True または False として評価されることによって、ブール式が生成されます。 次の例を使って説明します。

42 < 81

42 は 81 未満であるため、前の例のブール式は True に評価されます。 この種類の式の詳細については、「値の比較」を参照してください。

論理演算子と組み合わせた比較演算子

論理演算子を使用して比較式を組み合わせると、より複雑なブール式を生成できます。 次の例では、論理演算子と共に比較演算子を使用する方法を示しています。

x > y And x < 1000

前の例では、式全体の値は、And 演算子の両側の式の値によって決まります。 両方の式が True である場合、式全体が True に評価されます。 いずれかの式が False である場合、式全体が False に評価されます。

ショートサーキット演算子

論理演算子 AndAlso および OrElse では、ショートサーキットと呼ばれる動作が見られます。 ショートサーキット演算子では、左オペランドが最初に評価されます。 左オペランドで式全体の値が判断された場合、右の式を評価せずにプログラムの実行が続行されます。 次の例を使って説明します。

If 45 < 12 AndAlso testFunction(3) = 81 Then
    ' Add code to continue execution.
End If

前の例では、演算子によって左の式 45 < 12 が評価されます。 左の式は False に評価されるため、論理式全体が False に評価される必要があります。 このため、プログラムの実行では、右の式 testFunction(3) が評価されることなく、If ブロック内のコードの実行がスキップされます。 この例では、左の式によって式全体が False とされたため、testFunction() は呼び出されません。

同様に、OrElse を使用する論理式の左の式が True に評価された場合、左の式で式全体が既に検証済みであるため、右の式が評価されずに、次のコード行に実行が進みます。

非ショートサーキット演算子との比較

一方、論理演算子 AndOr が使用された場合、論理演算子の両側が評価されます。 次の例を使って説明します。

If 45 < 12 And testFunction(3) = 81 Then
    ' Add code to continue execution.
End If

前の例では、左の式が False に評価されても testFunction() が呼び出されます。

かっこで囲まれた式

かっこを使用して、ブール式の評価順序を制御できます。 かっこで囲まれた式は最初に評価されます。 複数レベルの入れ子の場合は、最も深い入れ子になった式が優先されます。 かっこ内では、演算子の優先順位のルールに従って、評価が行われます。 詳細については、「Visual Basic における演算子の優先順位」を参照してください。

関連項目