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.
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