Kann mir jemand den Java Code erklären?

3 Antworten

Moin,

wir haben dort das Ergebnis auf 0 gesetzt.

Wir gehen dann solange durch die Schleife, wie wir kleiner gleich n sind und erhöhen das neue i jeden Durchlauf um 1 und das Ergebnis um i.

Danach geben wir das Ergebnis zurück.

Im Grunde rechnen wir dort also 0 + 1 + 2 + 3 + 4 ... usw.

Beim Funktionrekursiv übergeben wir, solange m größer ist als 0, m - 1 + m zurück. Wenn wir hier einen Wert ungleich 0 übergeben, haben wir allerdings eine endlose Schleife. Denn m erhöht sich jedes Mal, kommt in die Funktion wieder rein, ist wieder größer als 0 und so weiter.

Rekursiv heißt, dass wir eine Schleife mit derselben Funktion ausführen, anstelle mit einer while-, for- oder foreach-Schleife

Die letzte Methode ist nicht gültig.

LG

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting

In der iterarativen Funktion ist nur eine for Schleife, die die Varibale 'ergebnis' mit eins aufaddiert bis n.

Die rekursive Funktion prüft, ob die Varibale m größer als null ist und falls das der Fall ist ruft sie sich selbst auf und subtrahiert jeweils eins (bis die Abbruchbedingung das m kleinergleich null ist erfüllt ist).

Also die eine Funktion zählt iterativ eine Varibale hoch, die andere rekursive eine Variable runter.

Edit: Die rekursive Funktion addiert noch m, das führt zu einer Endlosschleife falls m ungleich null, das hatte ich übersehen. Siehe die Antwort von Dultus.

Es werden die Zahlen von 0 bis n in aufsummiert.

Die Schleife läuft von 0 bis n. i hat anfangs den Wert 0 und wird mit jedem Durchlauf der Schleife um 1 erhöht. Der aktuelle Wert von i wird zu ergebnis addiert. Am Ende der Schleife wird Ergebnis geliefert.