Der Boole'sche Ausdruck ist true
34 > 2 || 5 == 7 ------ ----- true false -------------- true
da alles was OR benötigt ein true
ist.
Der oben stehende Ausdruck ergibt true
, da mindestens ein Operand
true
war. Tatsächlich wissen wir, dass sobald das erste true
ermittelt ist, der gesamte Ausdruck true
sein muss, da true
ODER irgendwas true
ist.
34 > 2 || 5 == 7 ------ ----- true spielt keine Rolle -------------- true
Aus Gründen der Optimierung wertet Java einen Ausdruck nur soweit aus wie es nötig ist, um den Wert zu bestimmen. Wenn das Programm läuft, sobald gefunden wird, dass 34 > 2
true
ist, wird der gesamte Ausdruck true
sein und die Auswertung wird beendet. Dieser Typ von Optimierung wird Short-Circuit Auswertung genannt. (Genauso wie bei AND.)
Hier ist ein vollständiges Java Programm, das die Autokauf-Entscheidung implementiert.
// Sportwagenkauf // // Sie brauchen $25000 in bar oder auf Kredit // import java.util.Scanner; class Autokauf { public static void main (String[] args) { Scanner scan = new Scanner( System.in ); int bargeld, kredit; // Bargeld holen System.out.print("Wie viel Bargeld haben Sie? "); bargeld = scan.nextInt() ; // Kreditrahmen holen System.out.print("Wie viel Kredit haben Sie? "); kredit = scan.nextInt() ; // überprüfen, dass mindestens eine Bedingung erfüllt ist if ( bargeld >= 25000 || kredit >= 25000 ) System.out.println("Genug, um dieses Auto zu kaufen!" ); else System.out.println("Wie waere es mit einem Mofa?" ); } }
Wir kompilieren das Programm und lassen es mit verschiedenen Werten von bargeld
und kredit
laufen, um zu sehen wie OR
funktioniert.