24.5 Kurz-
und Langauswertung boolscher Ausdrücke
|
|
Version
1 mit i++ Download KurzLang1.java |
Die Ausgabe: 2 4 false
Dass a und b mit dem booleschen Werten false belegt sind, wundert nicht, da die Auswertung des Ausdrucks k==3 auf jeden Fall den booleschen Wert false liefert und damit der gesamte Ausdruck den Wert false bekommen muss. Man erkennt aber deutlich den Unterschied zwischen der Kurz- und der Langauswertung. Die Inkrementierung von i durch die "++" hinter dem i, kommt natürlich erst zum Tragen, wenn der Ausdruck rechts von dem Operator auch ausgewertet wird, was hier bei & aber nicht bei && geschieht. Welche Ausgabe erwaten wir, wenn wir k auf den Wert 2 abfragen, der Quellcode also so aussieht (Veränderungen sind gelb unterlegt)?
|
Download KurzLang2.java |
|
Die Ausgabe: 2 5 true Dass wir für beide Ausgaben das
Gleiche bekommen, erwarten wir, da beides mal die Ausdrücke rechts von
den Operatoren ausgewertet werden müssen. Dass für i die Werte 5
ausgegeben werden, ist auch zu erwarten, dass aber die booleschen
Ausdrücke a und b zu true
ausgewertet werden, wundert schon.
|
|
Download KurzLang3.java |
|
Die Ausgabe: 2 5 false Was wir hier über die Kurz- und
Langauswertung bei den und-Operatoren gesagt haben, gilt natürlich auch
für die beiden oder-Operatoren. |
|
zu | 24.6 Einige Gesetze der Boolschen Algebra |
zur Startseite | www.pohlig.de (C) MPohlig 2005 |