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

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.