Boolesche Ausdrücke
Aktualisiert: November 2007
Ein boolescher Ausdruck ergibt einen Wert mit dem Boolean-Datentyp. Boolean-Ausdrücke weisen verschiedene Formen auf. Die einfachste Form ist der direkte Vergleich des Werts einer Boolean-Variablen mit einem Boolean-Literal, wie im folgenden Beispiel veranschaulicht.
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 wie der Ausdruck im vorherigen Beispiel aussieht. Sie führt jedoch eine andere Funktion aus und wird auf eine andere Art verwendet. Im vorherigen Beispiel stellt der Ausdruck newCustomer = True einen booleschen Wert dar, und das Zeichen = wird als Vergleichsoperator interpretiert. In einer eigenständigen Anweisung wird das Zeichen = als Zuweisungsoperator interpretiert, und der Wert auf der rechten Seite wird der Variablen auf der linken Seite zugewiesen. Dies wird anhand des folgenden Beispiels veranschaulicht:
If newCustomer = True Then
newCustomer = False
End If
Weitere Informationen finden Sie unter Wertvergleiche und unter Zuweisungsanweisungen.
Vergleichsoperatoren
Vergleichsoperatoren, z. B. =, <, >, <>, <= und >=, ergeben boolesche Ausdrücke, indem der Ausdruck auf der linken Seite des Operators mit dem Ausdruck auf der rechten Seite des Operators verglichen und das Ergebnis als True oder False ausgewertet wird. Dies wird anhand des folgenden Beispiels veranschaulicht:
42 < 81
Da 42 kleiner als 81 ist, ergibt der boolesche Ausdruck im vorangehenden Beispiel True. Weitere Informationen über diese Art von Ausdrücken finden Sie unter Wertvergleiche.
Vergleichsoperatoren kombiniert mit logischen Operatoren
Vergleichsausdrücke können mithilfe von logischen Operatoren kombiniert werden, um komplexere boolesche Ausdrücke zu erstellen. Im folgenden Beispiel wird die Verwendung von Vergleichsoperatoren in Verbindung mit einem logischen Operator veranschaulicht.
x > y And x < 1000
Im vorherigen Beispiel hängt der Wert des gesamten Ausdrucks von den Werten der Ausdrücke auf beiden Seiten des And-Operators ab. Wenn beide Ausdrücke True sind, ergibt der gesamte Ausdruck True. Wenn einer der Ausdrücke False ist, ergibt der gesamte Ausdruck False.
Kurzschlussoperatoren
Das Verhalten der logischen Operatoren AndAlso und OrElse wird als Kurzschluss bezeichnet. Ein Kurzschlussoperator wertet den linken Operanden zuerst aus. Wenn der linke Operand den Wert des gesamten Ausdrucks bestimmt, wird die Ausführung des Programms 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 vorangehenden Beispiel wertet der Operator den linken Ausdruck 45 < 12 aus. Da der linke Ausdruck False ergibt, muss der gesamte logische Ausdruck False ergeben. Das Programm überspringt daher die Ausführung des Codes im If-Block, ohne den rechten Ausdruck testFunction(3) auszuwerten. In diesem Beispiel wird testFunction() nicht aufgerufen, da der linke Ausdruck den gesamten Ausdruck als False bestimmt.
Wenn der linke Ausdruck in einem logischen Ausdruck mit OrElse den Wert True ergibt, wird entsprechend die Ausführung mit der nächsten Codezeile fortgesetzt, ohne den rechten Ausdruck auszuwerten, da der linke Ausdruck bereits den gesamten Ausdruck als True ausgewertet hat.
Vergleich mit Operatoren, die keine Kurzschlussoperatoren sind
Im Gegensatz dazu werden beide Seiten des logischen Operators ausgewertet, wenn die logischen Operatoren And und Or verwendet werden. Dies wird anhand des folgenden Beispiels veranschaulicht:
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
Im vorherigen Beispiel wird testFunction() aufgerufen, obwohl der linke Ausdruck False ergibt.
Klammernausdrücke
Mit Klammern können Sie die Auswertungsreihenfolge von booleschen Ausdrücken steuern. Ausdrücke in Klammern werden zuerst ausgewertet. Bei mehrfachen Schachtelungsebenen werden die am tiefsten geschachtelten Ausdrücke vorrangig behandelt. Innerhalb der Klammern wird die Auswertung entsprechend den Regeln der Operatorrangfolge vorgenommen. Weitere Informationen finden Sie unter Operatorrangfolge in Visual Basic.
Siehe auch
Konzepte
Logische und bitweise Operatoren in Visual Basic
Effiziente Kombination von Operatoren
Referenz
Vergleichsoperatoren (Visual Basic)