Logische Operatoren dienen dazu, boolesche Werte miteinander
zu verknüpfen. Im Gegensatz zu den relationalen Operatoren, die
durch Vergleiche erst Wahrheitswerte produzieren, werden logische
Operatoren zur Weiterverarbeitung von Wahrheitswerten verwendet.
Java stellt die Grundoperationen UND,
ODER und NICHT
zur Verfügung und bietet darüber hinaus die Möglichkeit,
das Auswertungsverhalten der Operanden zu beeinflussen. Anders als
die meisten anderen Programmiersprachen stellt Java die UND- und ODER-Verknüpfungen
in zwei verschiedenen Varianten zur Verfügung, nämlich mit
Short-Circuit-Evaluation oder ohne.
Bei der Short-Circuit-Evaluation eines logischen Ausdrucks wird ein
weiter rechts stehender Teilausdruck nur dann ausgewertet, wenn er
für das Ergebnis des Gesamtausdrucks noch von Bedeutung ist.
Falls in dem Ausdruck A && B
also bereits A falsch ist, wird
zwangsläufig immer auch A &&
B falsch sein, unabhängig von dem Resultat von B.
Bei der Short-Circuit-Evaluation wird in diesem Fall B
gar nicht mehr ausgewertet. Analoges gilt bei der Anwendung des ODER-Operators. |
 |
|
 |
Der in Java ebenfalls verfügbare EXKLUSIV-ODER-Operator
muß natürlich immer in der langen Variante ausgewertet
werden. Tabelle 5.3
gibt eine Übersicht der logischen Operatoren.
Operator |
Bezeichnung |
Bedeutung |
! |
Logisches NICHT |
!a ergibt false, wenn a wahr ist und true,
wenn a false ist. |
&& |
UND mit Short-Circuit-Evaluation |
a && b ergibt true, wenn sowohl
a als auch b wahr sind. Ist a bereits falsch, so wird false zurückgegeben
und b nicht mehr ausgewertet. |
|| |
ODER mit Short-Circuit-Evaluation |
a || b ergibt true, wenn mindestens einer
der beiden Ausdrücke a oder b wahr ist. Ist bereits a wahr, so
wird true zurückgegeben und b nicht mehr ausgewertet. |
& |
UND ohne Short-Circuit-Evaluation |
a & b ergibt true, wenn sowohl a als
auch b wahr sind. Beide Teilausdrücke werden ausgewertet. |
| |
ODER ohne Short-Circuit-Evaluation |
a | b ergibt true, wenn mindestens einer
der beiden Ausdrücke a oder b wahr ist. Beide Teilausdrücke
werden ausgewertet. |
^ |
EXKLUSIV-ODER |
a ^ b ergibt true, wenn beide Ausdrücke
einen unterschiedlichen Wahrheitswert haben. |
Tabelle 5.3: Logische Operatoren