Neue Antwort schreiben 
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Rekursiver Aufruf: Hilfsparams unsauber?
heiko
Unregistered

 
Beitrag #1
Rekursiver Aufruf: Hilfsparams unsauber?
Ist es unsauber, wenn man bei einer Funktion, die sich rekursiv aufruft, Hilfsparameter wie z.b. Counter verwendet?
07.10.2020 13:11
Diese Nachricht in einer Antwort zitieren
winfreak Offline
アンゲシュテルタ

Beiträge: 10.515
Registriert seit: Aug 2008
Beitrag #2
RE: Rekursiver Aufruf: Hilfsparams unsauber?
Naja, eine Abbruchsbedingung brauchst du ja irgendwo. Wenn man aber nur einen Parameter einbaut, um dann irgendwann implizit abzubrechen, fände ich das unsauber.

[Bild: winfreak_32972_14.png]
10.10.2020 20:19
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Dirk Offline
Software Archäologe

Beiträge: 14.941
Registriert seit: Jul 2008
Beitrag #3
RE: Rekursiver Aufruf: Hilfsparams unsauber?
wenn die variable außerhalb der schleife gesetzt wird, ist es definitiv unsauber. Aber wenn du wissen willst, wie häufig die schleife gelaufen ist, deine einzige chance. Die Rekursion weiß ja nicht, in welcher instanz sie läuft. Aber wie winfreak schon schreibt, parameter sind wichtig, nur so kann die rekursion aufgebaut werden. kannst ja auch mehrere parameter übergeben, und eine ist immer die selbe, dein maximalwert für den abbruch, falls du etwas immer größer rechnen willst, aber die grenze nicht explizit reinprogrammieren willst. Du kannst natürlich den counter auch als parameter geben. wenn der immer ++ macht, müsste am ende auch die schleifenzahl zurücktransportiert werden.

rekursion (x, counter){
...
rekursion (x, counter++);
}

Um welche Sprache gehts überhaupt?

10.10.2020 21:05
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.952
Registriert seit: Jul 2008
Beitrag #4
RE: Rekursiver Aufruf: Hilfsparams unsauber?
Etwas mehr Details (welche Sprache, was für ein Problem etc) wären hilfreich. Grundsätzlich sind Hilfsparameter aber legitim, wobei man bei viel mehreren "Hilfsparametern" dann eher zu einem Objekt greifen sollte. Zu dem bereits gesagten ist noch hinzuzufügen, dass du natürlich auch eine Eintrittsfunktion schreiben kannst.

Um Dirk's Beispiel zu nehmen:

Code:
rekursionMitCounter(x, counter){
   ...
   rekursionMitCounter(x, counter++);
}

rekurion(x) {
   rekursionMitCounter(x, 0);
}
10.10.2020 22:18
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


[-]
Schnellantwort
Nachricht
Gib hier deine Antwort zum Beitrag ein.

Bestätigung
Bestätigung
(Keine Beachtung von Groß- und Kleinschreibung)
Bitte den Code im Bild in das Feld eingeben. Dies ist nötig, um automatisiert erstellte Beiträge zu vermeiden.

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste