zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Nein. Der Programmierer wollte vermutlich, dass die drei Anweisungen nach dem else ein Teil des False-Blocks sind, aber er hat die geschweiften Klammern nicht verwendet, um das zu zeigen.

Nur eine Anweisung je Zweig

Der False-Block wurde nicht innerhalb geschweifter Klammern gestellt:

if ( zahl < 0 )
    System.out.println("Die Zahl " + zahl + " ist negativ");
else
    System.out.println("Die Zahl " + zahl + " ist positiv");
    System.out.print  ("Positive Zahlen sind groesser ");
    System.out.println("oder gleich 0 ");
System.out.println("Good-bye fuer jetzt");

Unser für Menschen freundliches Einrücken zeigt, was wir wollen. Aber der Compiler ignoriert Einrückungen . Er wird bloß nach geschweiften Klammern suchen. Er wird etwas sehen, das äquivalent zu diesem ist:

if ( zahl < 0 )
    System.out.println("Die Zahl " + zahl + " ist negativ"); // True-Zweig
else
    System.out.println("Die Zahl " + zahl + " ist positiv"); // False-Zweig

System.out.print  ("Positive Zahlen sind groesser ");    // wird immer ausgeführt
System.out.println("oder gleich 0 ");                    // wird immer ausgeführt
System.out.println("Good-bye fuer jetzt");               // wird immer ausgeführt

FRAGE 10:

Wie können wir das Problem beheben?