Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#7

AW: result nicht gesetzt (rekursive Tiefensuche)

  Alt 10. Sep 2012, 19:39
Finde ich nicht, denn du hörst nicht zu.

Hier sollte ebenfalls wieder mindestens 1 Compilerwarnung auftauchen.
- Rückgabewert nicht initialisiert (bei s = 5)
- zugewiesener Wert wird nicht benutzt (das erste result := ..., im s < 5)

Und genau deswegen kommt hier 6 raus, weil DU nichts initialisierst, denn sonst würde ein Leerstring aus deiner Funktion rauskommen.

Es wird Test mit 4 Aufgerufen, also landet die Ausführung im S < 5.
Dadurch wird dann erstmal Test mit 6 aufgerufen, was über S > 5 eine "6" liefert,
danach dann nochmal Test mit 5, was "nichts" zurückliefert, aber da DU schonwieder vergessen hast das Result zu initialisieren und Aufgrund der von mir vorhin beschiebenen Eigenschaft von aufeinanderfolgenden Aufrufen, und Zuweisung auf die selbe Variable, wird die vorher gesetzte "6" nicht mit einem neuen Result "überschrieben".

Außerdem empfehle ich dir dringend die Benutzung des Debuggers.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (10. Sep 2012 um 19:46 Uhr)
  Mit Zitat antworten Zitat