Eine gute Antwort wäre:

    if (  bargeld >= PREIS )

Sie haben (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 Boolesche Ausdruck true 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 Boolesche Ausdruck false ergab.

Boolesche Ausdrücke sind immer true oder false. Durch die Verwendung des richtigen relationalen Operators (==, >, <, >=, <=, != ) stellen Sie eine Frage, die true ergibt, wenn Sie den true-Zweig ausgeführt haben wollen. Der true-Zweig ist nicht unbedingt immer die "beste Wahl". Wenn die Anweisungen innerhalb der beiden Zweige ausgetauscht werden, müssen Sie 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.io.*;
class PulloverKauf
{
  public static void main (String[] args) throws IOException
  {
    final int PREIS = 4495;    // Preis in Cent

    BufferedReader stdin =
        new BufferedReader ( new InputStreamReader( System.in ) );

    String inData;
    int    bargeld;

    System.out.println("Wie viel haben Sie, in Cent?");
    inData = stdin.readLine();
    bargeld   = Integer.parseInt( inData );

    if (  __________________ )
    {
      System.out.println("Sie können 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 Boolesche Ausdruck sollte in der Lücke stehen?

Inhaltsverzeichnis