zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

    if (  bargeld >= PREIS )

Ihr habt (hoffentlich) einen relationalen Operator gewählt, der true ergibt, wenn der Anwender den Pullover bezahlen KANN.

Umgekehrte Logik

Hier ist, was bei einem Ablauf des Programms passiert:

Wie viel haben Sie, in Cent?
5000
Sie koennen den Pullover kaufen

Der True-Block wurde ausgeführt, da der Boole'sche Ausdruck wahr ergab. Hier ist ein weiterer Lauf des Programms:

Wie viel haben Sie, in Cent?
2000
Sie koennen den Pullover nicht kaufen
Sie brauchen $24.95 mehr.

Der False-Block wurde ausgeführt, da der Boole'sche Ausdruck falsch ergab.

Boole'sche Ausdrücke sind immer wahr oder falsch. Durch die Verwendung des richtigen relationalen Operators (==, >, <, >=, <=, != ) stellen wir eine Frage, die wahr ergibt, wenn wir den True-Zweig ausgeführt haben wollen.

Wenn die Anweisungen innerhalb der beiden Zweige ausgetauscht werden, müssen wir auch den relationalen Operator ändern, damit das Programm das Gleiche tut wie zuvor.

Hier ist noch einmal das Programm, mit den ausgetauschten Anweisungen des True- und False-Zweiges.

import java.util.Scanner;
class PulloverKauf
{
  public static void main (String[] args)
  {
    final int PREIS = 4495;    // Preis in Pennies

    Scanner scan = new Scanner( System.in );

    int    bargeld;

    System.out.println("Wie viel haben Sie, in Pennies?");
    bargeld   = scan.nextInt();

    if (   )
    {
      System.out.println("Sie koennen den Pullover nicht kaufen." );
      System.out.println("Sie brauchen $" +
        (PREIS-bargeld)/100 + "." + (PREIS-bargeld)%100 + " mehr." );
    }
    else
       System.out.println("Sie koennen den Pullover kaufen.");
  }
}

FRAGE 8:

Welcher Boole'sche Ausdruck sollte in der Lücke stehen?