"Grundkurs Programmieren in Java - (8. Auflage, 2018)"
2001-2018, Carl Hanser Verlag
Lösungsvorschlag zu Aufgabe 3.22 (Version 4.0)
(c) 2001-2018 D. Ratz, D. Schulmeister-Zimolong, D. Seese, J. Wiesenberger
Beispiel A:
Der (durch Block-Klammerung verdeutlichte) logische Programmablauf ist:
if (x < 5)
{ if (x < 0)
{
System.out.println("x < 0");
}
else
{
System.out.println("x >= 5");
}
}
woran man den Fehler sofort erkennt. Korrekt wäre:
if (x < 5)
{ if (x < 0)
{
System.out.println("x < 0");
}
}
else
{
System.out.println("x >= 5");
}
Beispiel B:
Der (durch Block-Klammerung verdeutlichte) logische Programmablauf ist
if (x > 0)
{
System.out.println("ok! x > 0");
}
System.out.println("1/x = " + (1/x));
woran man den Fehler sofort erkennt. Korrekt wäre
if (x > 0)
{
System.out.println("ok! x > 0");
System.out.println("1/x = " + (1/x));
}
Beispiel C:
Der (durch Block-Klammerung verdeutlichte) logische Programmablauf ist
if (x > 0)
{ } ;
System.out.println("1/x = " + (1/x));
der Fehler ist also das Semikolon. Korrekt wäre
if (x > 0)
System.out.println("1/x = " + (1/x));
Beispiel D:
Im Beispiel werden x und y durch
if (y > x)
{ // vertausche x und y
x = y;
y = x;
}
nicht vertauscht, sondern beide Variablen auf den gleichen Wert (nämlich den von y) gesetzt.
Korrekt wäre:
int dummy;
if (y > x)
{ // vertausche x und y
dummy = x;
x = y;
y = dummy;
}
Dies vorgehen nennt man auch Dreiecks-Tausch.
Quelltext: Falsch.java