Schlechter Durchschnitt
Manchmal verwendet eine if- oder while-Anweisung
den Short-Circuit AND-Operator, um eine Division durch Null oder eine andere leicht zu testende Bedingung zu vermeiden, wie in diesem Beispiel.
Das Gleiche könnte mit einer verschachtelten if-Anweisung erreicht werden, aber auf Kosten der Übersichtlichkeit, und das könnte ein Programmierer zu vermeiden suchen. Der erste Vergleich zaehler > 0 agiert als eine Art Wächter, der die Auswertung daran hindert die Division durch Null zu erreichen.
int zaehler = 0;
int gesamt = 345;
if ( zaehler > 0 && gesamt / zaehler > 80 )
System.out.println("Akzeptabler Durchschnitt");
else
System.out.println("Schlechte Durchschnitt");
Das Beispiel-Programm würde nicht funktionieren und mit einer Fehlermeldung abbrechen, wenn der Non-Short-Circuit &-Operator verwendet würde.
Der zweite Operand würde eine Division durch Null durchführen, auch wenn die Auswertung des ersten Operanden ein false ergibt. Das Beispiel funktioniert wie folgt:
int zaehler = 0;
int gesamt = 345;
if ( zaehler > 0 && gesamt / zaehler > 80 )
---------
false, also wird keine
weitere Auswertung durchgeführt
Wir schreiben das Programm um, indem wir verschachtelte if-Anweisungen verwenden: