Java Reference
In-Depth Information
Der NICHT-Operator
!
kehrt den logischen Operanden ins Gegenteil um. Hat
a
den Wert
true
, so hat
!a
den Wert
false
. Hat
a
den Wert
false
, dann hat
!a
den Wert
true
.
Tabelle 2.11
zeigt die möglichen Verknüpfungen mit den Ergebnissen der übrigen Ope-
ratoren.
a
b
a & b
a && b
a ^ b
a | b
a || b
true
true
true
false
true
true
false
false
true
true
false
true
false
true
true
false
false
false
false
false
Tabelle 2.11
Logische Verknüpfungen zweier Wahrheitswerte
UND und ODER gibt es in zwei Varianten. Die
kurze
Auswertung
(
&&
bzw.
||
) führt dazu,
dass die Auswertung des Gesamtausdrucks abgebrochen wird, sobald das Ergebnis fest-
steht. Eine
vollständige
Auswertung
(
&
bzw.
|
) bewirkt, dass grundsätzlich immer der
gesamte Ausdruck abgearbeitet wird. Im folgenden Beispiel wird der Unterschied
gezeigt.
inta=1;
booleanx=true;
booleany=false;
System.out.println(y && (++a == 2));
System.out.println("a = " + a);
Die verkürzte Auswertung der UND-Verknüpfung in der ersten
System.out.println
-
Anweisung sorgt dafür, dass der Klammerausdruck nicht mehr ausgewertet werden
muss. Da
y
den Wert
false
hat, kann das Ergebnis der Verknüpfung nur
false
lauten.
Dadurch, dass der Klammerausdruck nicht ausgewertet wird, entfällt auch das Inkre-
mentieren (
++
) von
a
. Die Variable
a
behält ihren Wert. Testen Sie die Anweisungsfolge
mit dem
&
-Operator für die vollständige Auswertung, und Sie werden feststellen, dass
a
inkrementiert wird und entsprechend den Wert 2 annimmt.