Boolean 式 (Visual Basic)Boolean Expressions (Visual Basic)

ブール式は、True または FalseBoolean データ型の値に評価される式です。A Boolean expression is an expression that evaluates to a value of the Boolean Data Type: True or False. Boolean 式には、複数の形式を使用できます。Boolean expressions can take several forms. 最も単純なのは、次の例に示すように、Boolean 変数の値を Boolean リテラルに直接比較することです。The simplest is the direct comparison of the value of a Boolean variable to a Boolean literal, as shown in the following example.

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

= 演算子の2つの意味Two Meanings of the = Operator

代入ステートメント newCustomer = True は、前の例の式と同じように見えますが、別の関数を実行し、異なる方法で使用します。Notice that the assignment statement newCustomer = True looks the same as the expression in the preceding example, but it performs a different function and is used differently. 前の例では、式 newCustomer = True はブール値を表し、= 符号は比較演算子として解釈されます。In the preceding example, the expression newCustomer = True represents a Boolean value, and the = sign is interpreted as a comparison operator. スタンドアロンのステートメントでは、= 記号は代入演算子として解釈され、右側の値が左側の変数に代入されます。In a stand-alone statement, the = sign is interpreted as an assignment operator and assigns the value on the right to the variable on the left. これを次の例に示します。The following example illustrates this.

If newCustomer = True Then
    newCustomer = False
End If

詳細については、「値の比較ステートメント」を参照してください。For further information, see Value Comparisons and Statements.

比較演算子Comparison Operators

=<><><=>= などの比較演算子は、演算子の左辺の式を演算子の右辺の式と比較し、結果を True または Falseとして評価することによって、ブール式を生成します。Comparison operators such as =, <, >, <>, <=, and >= produce Boolean expressions by comparing the expression on the left side of the operator to the expression on the right side of the operator and evaluating the result as True or False. これを次の例に示します。The following example illustrates this.

42 < 81

42は81未満であるため、前の例のブール式は Trueに評価されます。Because 42 is less than 81, the Boolean expression in the preceding example evaluates to True. この種類の式の詳細については、「値の比較」を参照してください。For more information on this kind of expression, see Value Comparisons.

論理演算子と組み合わせた比較演算子Comparison Operators Combined with Logical Operators

論理演算子を使用して比較式を組み合わせると、より複雑なブール式を生成できます。Comparison expressions can be combined using logical operators to produce more complex Boolean expressions. 次の例では、論理演算子と共に比較演算子を使用する方法を示します。The following example demonstrates the use of comparison operators in conjunction with a logical operator.

x > y And x < 1000

前の例では、式全体の値は、And 演算子の各辺の式の値によって決まります。In the preceding example, the value of the overall expression depends on the values of the expressions on each side of the And operator. 両方の式が True場合、全体の式が Trueに評価されます。If both expressions are True, then the overall expression evaluates to True. いずれかの式が False場合、式全体が Falseに評価されます。If either expression is False, then the entire expression evaluates to False.

ショートサーキット演算子Short-Circuiting Operators

論理演算子 AndAlsoOrElseショートサーキットと呼ばれる動作を示すことができます。The logical operators AndAlso and OrElse exhibit behavior known as short-circuiting. ショートサーキット演算子は、左オペランドを最初に評価します。A short-circuiting operator evaluates the left operand first. 左側のオペランドで式全体の値が決定された場合、プログラムの実行は正しい式を評価せずに続行されます。If the left operand determines the value of the entire expression, then program execution proceeds without evaluating the right expression. これを次の例に示します。The following example illustrates this.

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

前の例では、演算子は左の式の 45 < 12を評価します。In the preceding example, the operator evaluates the left expression, 45 < 12. 左の式は Falseと評価されるため、論理式全体が Falseに評価される必要があります。Because the left expression evaluates to False, the entire logical expression must evaluate to False. このため、プログラムを実行すると、正しい式 testFunction(3)を評価せずに If ブロック内のコードの実行がスキップされます。Program execution thus skips execution of the code within the If block without evaluating the right expression, testFunction(3). この例では testFunction() は呼び出されません。左の式が式全体を falsifies ためです。This example does not call testFunction() because the left expression falsifies the entire expression.

同様に、OrElse を使用する論理式の左式が Trueに評価される場合、左の式では式全体が検証済みであるため、右の式を評価せずに次のコード行に実行が進みます。Similarly, if the left expression in a logical expression using OrElse evaluates to True, execution proceeds to the next line of code without evaluating the right expression, because the left expression has already validated the entire expression.

非ショートサーキット演算子との比較Comparison with Non-Short-Circuiting Operators

一方、論理演算子の両側は、論理演算子 AndOr が使用されるときに評価されます。By contrast, both sides of the logical operator are evaluated when the logical operators And and Or are used. これを次の例に示します。The following example illustrates this.

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

前の例では、左の式が Falseに評価された場合でも testFunction() が呼び出されます。The preceding example calls testFunction() even though the left expression evaluates to False.

かっこで囲まれる式Parenthetical Expressions

かっこを使用して、ブール式の評価順序を制御できます。You can use parentheses to control the order of evaluation of Boolean expressions. かっこで囲まれた式は最初に評価されます。Expressions enclosed by parentheses evaluate first. 入れ子のレベルが複数ある場合は、最も深い入れ子になった式に優先順位が与えられます。For multiple levels of nesting, precedence is granted to the most deeply nested expressions. かっこ内で、評価は演算子の優先順位の規則に従って行われます。Within parentheses, evaluation proceeds according to the rules of operator precedence. 詳細については、「 Visual Basic での演算子の優先順位」を参照してください。For more information, see Operator Precedence in Visual Basic.

参照See also