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.
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
Wie können wir das Problem beheben?