Short-Circuit AND-Operator


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.