Boolesche Ausdrücke (Visual Basic)
Ein boolescher Ausdruck ist ein Ausdruck, der als Wert des Boolean-Datentyps ausgewertet wird: True
oder False
. Boolean
-Ausdrücke können in verschiedener Form auftreten. Die einfachste ist der direkte Vergleich des Werts einer Boolean
-Variablen mit einem Boolean
-Literal, wie im folgenden Beispiel gezeigt.
If newCustomer = True Then
' Insert code to execute if newCustomer = True.
Else
' Insert code to execute if newCustomer = False.
End If
Zwei Bedeutungen des Operators =
Beachten Sie, dass die Zuweisungsanweisung newCustomer = True
genauso aussieht wie der Ausdruck im vorangegangenen Beispiel, aber sie führt eine andere Funktion aus und wird anders verwendet. Im vorangegangenen Beispiel steht der Ausdruck newCustomer = True
für einen booleschen Wert, und das Zeichen =
wird als Vergleichsoperator interpretiert. In einer eigenständigen Anweisung wird das =
-Zeichen als Zuweisungsoperator interpretiert und weist den Wert auf der rechten Seite der Variablen auf der linken Seite zu. Dies wird anhand des folgenden Beispiels veranschaulicht.
If newCustomer = True Then
newCustomer = False
End If
Weitere Informationen finden Sie unter Wertvergleiche und Anweisungen.
Vergleichsoperatoren
Vergleichsoperatoren wie =
, <
, >
, <>
, <=
und >=
erzeugen boolesche Ausdrücke, indem sie den Ausdruck auf der linken Seite des Operators mit dem Ausdruck auf der rechten Seite des Operators vergleichen und das Ergebnis als True
oder False
auswerten. Dies wird anhand des folgenden Beispiels veranschaulicht.
42 < 81
Da 42 kleiner ist als 81, wird der boolesche Ausdruck im vorangegangenen Beispiel als True
ausgewertet. Weitere Informationen zu dieser Art von Ausdruck finden Sie unter Wertvergleiche.
Vergleichsoperatoren in Kombination mit logischen Operatoren
Vergleichsausdrücke können mit logischen Operatoren kombiniert werden, um komplexere boolesche Ausdrücke zu erzeugen. Das folgende Beispiel veranschaulicht die Verwendung von Vergleichsoperatoren in Verbindung mit einem logischen Operator.
x > y And x < 1000
Im vorangegangenen Beispiel hängt der Wert des Gesamtausdrucks von den Werten der Ausdrücke auf jeder Seite des And
-Operators ab. Wenn beide Ausdrücke True
lauten, wird der gesamte Ausdruck als True
ausgewertet. Wenn einer der beiden Ausdrücke False
lautet, dann wird der gesamte Ausdruck als False
ausgewertet.
Operatoren mit Kurzschlussauswertung
Die logischen Operatoren AndAlso
und OrElse
zeigen ein Verhalten, das als Kurzschlussauswertung bezeichnet wird. Ein logischer Operator mit Kurzschlussauswertung wertet zuerst den linken Operanden aus. Wenn der linke Operand den Wert des gesamten Ausdrucks bestimmt, wird die Programmausführung fortgesetzt, ohne den rechten Ausdruck auszuwerten. Dies wird anhand des folgenden Beispiels veranschaulicht.
If 45 < 12 AndAlso testFunction(3) = 81 Then
' Add code to continue execution.
End If
Im vorherigen Beispiel wertet der Operator den linken Ausdruck als 45 < 12
aus. Da der linke Ausdruck als False
ausgewertet wird, muss der gesamte logische Ausdruck als False
ausgewertet werden. Die Programmausführung überspringt daher die Ausführung des Codes im If
-Block, ohne den rechten Ausdruck (testFunction(3)
) auszuwerten. In diesem Beispiel wird testFunction()
nicht aufgerufen, weil der linke Ausdruck dazu führt, dass der gesamte Ausdruck als „false“ ausgewertet wird.
Ähnlich verhält es sich, wenn der linke Ausdruck in einem logischen Ausdruck mit OrElse
als True
ausgewertet wird. Dann wird ohne Auswertung des rechten Ausdrucks mit der nächsten Codezeile fortgefahren, da der gesamte Ausdruck bereits durch den linken Ausdruck validiert wurde.
Vergleich mit Operatoren ohne Kurzschlussauswertung
Im Gegensatz dazu werden bei Verwendung der logischen Operatoren And
und Or
beide Seiten des logischen Operators ausgewertet. Dies wird anhand des folgenden Beispiels veranschaulicht.
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
Im obigen Beispiel wird testFunction()
aufgerufen, obwohl der linke Ausdruck als False
ausgewertet wird.
Klammerausdrücke
Sie können Klammern verwenden, um die Reihenfolge der Auswertung von booleschen Ausdrücken zu steuern. Ausdrücke, die in Klammern eingeschlossen sind, werden zuerst ausgewertet. Bei mehreren Schachtelungsebenen haben die am tiefsten geschachtelten Ausdrücke Vorrang. Innerhalb von Klammern erfolgt die Auswertung gemäß den Regeln der Operatorrangfolge. Weitere Informationen finden Sie unter Operatorrangfolge in Visual Basic.