Titel   Inhalt   Suchen   Index   API  Go To Java 2, Zweite Auflage, Handbuch der Java-Programmierung
 <<    <     >    >>  Kapitel 5 - Ausdrücke

5.4 Logische Operatoren



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.

 Hinweis 

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


 Titel   Inhalt   Suchen   Index   API  Go To Java 2, Zweite Auflage, Addison Wesley, Version 2.0
 <<    <     >    >>  © 2000 Guido Krüger, http://www.gkrueger.com