Seite 1 von 1

rekursiver Funktionsaufruf

Verfasst: Mittwoch 11. Oktober 2006, 12:29
von gorba
Hallo, folgende Frage verwirrt mich:

Code: Alles auswählen

funcBla(a,b):
	if(a==b):
		result = b
	else:
		b -= 1
		funcBla(a,b)
	return result
a = 0, b = 1

Wenn nun die Funktion sich selber aufruft, und dann die Bedingung if(a==b) zutrifft, wem liefert dann die Funktion den return wert zurück?
- sich selber (da sie von sich selber aufgerufen wurde)
- der ursprünglich aufrufenden funktion

bin verwirrt =S

Verfasst: Mittwoch 11. Oktober 2006, 12:58
von Nirven
Der Wert wird bei dir niemandem geliefert... Um einen Returnwert zu erhalten, musst du in auch irgendetwas zuweisen, also "x = funcXY()", dann wird der Return-Wert "x" zugewiesen.

Und damit ist eigentlich auch deine Frage beantwortet, da die Zuweisung innerhalb der Funktion ist, kommt das return auch da an.

Code: Alles auswählen

def funcBla(a,b):
    if a != b:
        b = funcBla(a,b-1)
    return b
So sollte es einigermaßen sinnvoll sein.

Frage beantwortet? Sonst bitte umformulieren.

Verfasst: Mittwoch 11. Oktober 2006, 13:04
von gorba
*autsch*

ok, völlig logisch und nachvollziehbar!
Da ist mir wohl ein Blauwahl auf der Leitung gestanden...

Thx