Java:Zählvariable + Rekursion?

...komplette Frage anzeigen

3 Antworten

Das 'Resettet' kommt wohl durch das Call by Value:

private int myMethod(int counter) {
    if (counter < 10) {
      counter++;
       myMethod(counter);
    }
   return counter;
}

hier könntest du beispielsweise die Variable, dessen Wert du als Parameter übergibst, mit dem Rückgabe-Wert aktualisieren:

private int myMethod(int counter) {
if (counter < 10) {
counter++;
counter = myMethod(counter);
}
return counter;
}
Antwort bewerten Vielen Dank für Deine Bewertung

Übergib doch einfach den Zähler als Parameter an die Methode ^^ Dann wird einfach bei jedem Unteraufruf der Wert übergeben. Ich weiß nicht wie dein Programm aussieht aber möglicherweise wirst du ein Objekt anstatt eines primitiven Typs übergeben müssen damit Veränderungen erhalten bleiben

Antwort bewerten Vielen Dank für Deine Bewertung

Das geht mit statischen Variablen, aber bei richtigen rekursiven Funktionen ist das schlechter Stil.

Normalerweise gibt es eine "Variante", das sind Parameter, die sich zwischen Aufrufen ändern, die agieren je nach Funktion als eine art "Zähler".

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?