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.

Siehe auch