zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nein, Wir könnten das Auto nicht kaufen (zumindest ist es das, was der unkorrekte Boole'sche Ausdruck sagt).

Falsche Klammersetzung

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:

FRAGE 15:

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.");