if ( boolescherAusdruck ){
    eine oder mehr Anweisungen
}else {
    eine oder mehr Anweisungen }

Eine gute Antwort wäre:

Ja. Es ist logisch das gleiche wie:

if ( boolescherAusdruck )
{
    eine oder mehr Anweisungen
}
else
{
    eine oder mehr Anweisungen
}

Einige Programmierer verwenden den ersten Stil, um Zeilen zu "sparen". Das war früher erstrebenswert als Terminals nur 23 Zeilen darstellen konnten. Aber dieser Stil führt zu Fehlern und zusätzlichem Zeitaufwand beim Debuggen.

Die richtige Frage stellen

Angenommen Sie kaufen gerade im Einkaufszentrum ein und finden einen Pullover, der Ihnen gefällt, aber (durch den impulsiven Kauf des Gebäcks) könnten Sie nicht genug Geld haben, um ihn zu kaufen. Hier ist ein Programm, das entscheidet ob Sie den Pullover bekommen:

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 koennen den Pullover kaufen" );
    else
    {
      System.out.println("Sie koennen den Pullover nicht kaufen" );
      System.out.println("Sie brauchen $" +
        (PREIS-bargeld)/100 + "." + (PREIS-bargeld)%100 + " mehr." );
    }

  }
}

Das reservierte Wort final in der fünften Zeile besagt, dass der in PREIS enthaltene Wert sich zur Laufzeit des Programms nicht ändern wird. Wenn Sie final verwenden, wird der Compiler Sie keine Anweisung schreiben lassen, die versucht den Wert zu ändern. Das ist nützlich, um Bugs zu vermeiden.

FRAGE 7:

Welcher Boolesche Ausdruck sollte in der Lücke stehen? (Vorausgesetzt, dass es keine Verkaufssteuer gibt.)

Inhaltsverzeichnis