Java: "Unreachable Statement" in descending-Methode - wieso ist das so und was muss ich machen, damit es läuft?

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).

Woher ich das weiß:Berufserfahrung – Inhaber einer App-Agentur & 15+ Jahre Programmiererfahrung

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

Woher ich das weiß:Studium / Ausbildung – Softwareentwickler mit 10 Jahren Berufserfahrung 💾

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.

Woher ich das weiß:Berufserfahrung – Java-Entwickler von Batch- und Webanwendungen

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.

Woher ich das weiß:Berufserfahrung – Berufserfahrung