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

Sie könnten etwas bemerkt haben, wenn Sie die Frage beantwortet haben: Sie können die korrekte Antwort auf die Frage bekommen, indem Sie nur den ersten Teil des Ausdrucks auswerten.

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

Da false && irgendwas 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:

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