2.10.1 | Der Typ boolean |
Der Typ boolean dient zum Speichern der logischen Werte true und false. Diese beiden Werte werden zwar intern mit Eins und Null dargestellt, sie sind aber nicht gleich Eins und Null. Eine Anweisung wieboolean b = 1; // illegalerzeugt einen Fehler beim Kompilieren. Werte vom Typ boolean sind zu allen anderen Standardtypen inkompatibel. Sie lassen sich auch nicht durch Cast-Konstrukte in andere Typen überführen. Alle logischen Vergleiche haben in Java den Typ boolean. So ist folgender Ausdruck möglich:int a = 1, b = 2; boolean bool = a <= b;true und false sind die einzigen möglichen Literale für boolean. Tabelle 2.2 zeigt die für den Typ boolean definierten Operatoren, ihre Bedeutung und ob sie einen oder zwei Operanden besitzen. Ferner ist aufgeführt, ob sie links- oder rechts-assoziativ sind.
Tabelle 2.2: Operatoren für boolean Operator Bedeutung Art Ass. ==, != Gleichheit, Ungleichheit binär L ! Negation unär L & Und mit vollständiger Auswertung binär L | Oder mit vollständiger Auswertung binär L ^ Exklusiv-Oder binär L && Und mit Kurzschlussauswertung binär L || Oder mit Kurzschlussauswertung binär L Bei den Operatoren mit Kurzschlussauswertung && und || wird die Auswertung eines logischen Ausdrucks abgebrochen, wenn das Ergebnis bereits vorzeitig feststeht. Das ist unter folgenden Bedingungen der Fall:
Die Operatoren mit vollständiger Auswertung werden in Fällen benötigt, in denen in den Teilausdrücken Methodenaufrufe vorkommen, die in jedem Fall ausgeführt werden müssen (evtl. aufgrund von Seiteneffekten).
- Wenn a beim Ausdruck a && b den Wert false hat, wird b nicht mehr ausgewertet, da bereits feststeht, dass das Gesamtergebnis false ist.
- Wenn a beim Ausdruck a || b den Wert true hat, wird b nicht mehr ausgewertet, da bereits feststeht, dass das Gesamtergebnis true ist.