zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

12 < 6 && 18 > 1 ergibt false

Short-Circuit AND-Operator

AND-Operator &&
true  && true  true
false && true  false
true  && false  false
false && false false

Wir können die korrekte Antwort auf die Frage bekommen, indem wir nur den ersten Teil des Ausdrucks auswerten.

12 < 6 && 18 > 1
------
false

Da false && irgendwas immer false ist, gibt es keinen Grund fortzufahren, nachdem der erste Teil als false ausgewertet wurde. Das ist in der Tat das, was Java tut.

Um X && Y auszuwerten, wird zuerst X ausgewertet. Wenn X false ist, dann Stop: der ganze Ausdruck ist false. Ansonsten werte Y aus und verknüpfe dann die zwei Werte mit &&.

Dieses Konzept wird Short-Circuit-Auswertung genannt. Programmierer verwenden diese Eigenschaft von Java häufig. Zum Beispiel angenommen, dass zwei Methoden , die true/false zurückgeben, in einem Boole'schen Ausdruck verknüpft sind:

if ( meineAuswertungDauertStunden() && beiMirGehtDasSchnell() )
   ....

FRAGE 2:

Schlagt eine bessere (aber logisch identische) Möglichkeit vor, diesen Boole'schen Ausdruck anzuordnen.