ブール式は、ブール型 (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
に評価されます。
Short-Circuiting 演算子
論理演算子AndAlso
し、OrElse
ショートサーキットと呼ばれる動作を示します。 ショートサーキット演算子は、最初に左オペランドを評価します。 左オペランドが式全体の値を決定する場合、プログラムの実行は右の式を評価せずに続行されます。 次に例を示します。
If 45 < 12 AndAlso testFunction(3) = 81 Then
' Add code to continue execution.
End If
前の例では、演算子は左の式 ( 45 < 12
) を評価します。 左の式は False
に評価されるため、論理式全体が False
評価される必要があります。 したがって、プログラムの実行は、適切な式 (testFunction(3)
) を評価することなく、If
ブロック内のコードの実行をスキップします。 この例では、左の式によって式全体が改ざんされるため、 testFunction()
は呼び出されません。
同様に、 OrElse
を使用する論理式の左式が True
に評価された場合、左の式は式全体を既に検証しているため、右の式を評価せずに次のコード行に実行が進みます。
非Short-Circuiting 演算子との比較
これに対し、論理演算子の両側は、論理演算子 And
と Or
が使用されるときに評価されます。 次に例を示します。
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
前の例では、左の式がFalse
に評価される場合でも、testFunction()
を呼び出します。
かっこで囲まれた式
かっこを使用して、ブール式の評価順序を制御できます。 かっこで囲まれた式は、最初に評価されます。 複数レベルの入れ子の場合、最も深く入れ子になった式に優先順位が付与されます。 かっこ内では、演算子の優先順位の規則に従って評価が続行されます。 詳細については、「 Visual Basic での演算子の優先順位」を参照してください。
こちらも参照ください
.NET