Nein, Wir könnten das Auto nicht kaufen (zumindest ist es das, was der unkorrekte Boole'sche Ausdruck sagt).
Wir haben $50.000 in bar, $100.000 Kreditrahmen und $3.000 Schulden. Der unkorrekte Ausdruck wird wie folgt ausgewertet:
( cash >= 25000 || kredit >= 25000 ) && schulden < 1000 ( true || kredit >= 25000) && schulden < 1000 ( true || true ) && schulden < 1000 ( true ) && schulden < 1000 true && false false
Der korrekt gruppierte Ausdruck
cash >= 25000 || ( kredit >= 25000 && schulden < 1000 )
wird sofort als true
ausgewertet.
Hier ist ein anderes Problem: Ein Programm filtert Bewerber. Ein Bewerber wird nur dann zum Vorstellungsgespräch eingeladen, wenn er zwei Bedingungen erfüllt:
Wir korrigieren in diesem Boole'schen Ausdruck die Klammern so, dass er die Bewerber korrekt testet:
if ( college >= 4 && berufserfahrung >= 2 || notendurchschnitt > 3.5 ) System.out.println("Bewerber einladen"); else System.out.println("Bewerbung wieder in den Umlaufordner packen.");