Java: "Unreachable Statement" in descending-Methode - wieso ist das so und was muss ich machen, damit es läuft?
Mein Programm gibt mir innerhalb der descending-Methode in
descending(a - 1)
einen Fehler "unreachable statement".
Kann mir da jemand weiterhelfen, wieso das so ist und was ich machen muss damit es läuft?
public class Descending {
public static void main(String[] args) {
descending(10);
}
public static void descending(int a) {
if (a == 0) {
return;
descending(a - 1);
System.out.println(a);
}
}
}
Danke im Voraus.
5 Antworten
Du führst absolut nichts aus, wenn du die Funktion mit 10 als Parameter aufrufst. Du hast nämlich alles, was in der Funktion steht, in die if-Abfrage gepackt, die den Code nur ausführt, wenn der Parameter 0 ist.
Ich denke, mal die geschweifte Klammer sollte unter das return, nicht unter System.out.println(a).
Du beginnst die Funktion mit 10. Die If-Abfrage schlägt aber nur bei 0 an. Die Funktion wird direkt wieder beendet. Da findet so keine Rekursion statt.
Davon abgesehen würde selbst bei a = 0 direkt ein return kommen. Der Code unter dem return ist nicht erreichbar.
Versuche es mal so:
public class Descending
{
public static void main(String[] args)
{
descending(10);
}
public static void descending(int a)
{
if(a > 0)
{
descending(a-1);
System.out.println(a);
}
else
{
return;
}
}
}
Die Ausgabe wird für sich selbst sprechen ^^
LG Knom
Wenn du nach "if (a == 0 ) {" direkt returnst, dann kann unterhalb der selben Klammerung natürlich danach kein Code mehr ausgeführt werden.
lass einfach die "{" weg, dann macht das wahrscheinlich schon das, was du willst.
oder setze die schließende Klammer direkt nach dem Return.
Ist doch klar... schau dir mal deine If-Anweisung an... Ich denke, dass deine geschweifte Klammer } falsch platziert ist ...
Überleg mal was return macht und welchen Fall der Code darunter ausgeführt wird.
Nämlich niemals.