M
SG1 schrieb:
p behält nicht den vorherigen Wert bei.
SG1 schrieb:
Bei jedem Aufruf von power wird die Funktion neu von oben nach unten abgearbeitet.
Gut, dann habe ich das richtig verstanden. Mein Fehler lag woanders.
SeppJ schrieb:
p fangt immer mit dem Wert 1 an, alle Funktionsaufrufe sind komplett unabhängig voneinander. Vielleicht solltest du noch einmal darüber nachdenken, was die Zeilen 23 und 24 machen.
Tausend Dank für deine Antwort.
Ich hab das mal wirklich der Reihe nach abgearbeitet. Nun verstehe ich auch, wo mein Fehler lag, und zwar genau bei Zeile 23 und 24. Die wird ja durchlaufen, sofern die Bedingung i <= n wahr ist. Im Zuge dessen wird p ja auch mehrmals berechnet.
power (2,0)
i > 0, keine Rechnung, return 1 da p auf 1 gesetzt
power (2,1)
i = 1 = n, daher 1x2, p = 2, i++
i = 2 > n, keine Rechnung, i++
und so weiter, return 2
power (2,2)
i = 1 < n, daher 1x2, p= 2, i++
i = 2 = n, daher 2x2, p=4, i++
i = 3 > n, keine Rechnung, i++
und so weiter, daher sind p und return 4
power (2,3)
i = 1 < n, daher 1x2, p=2, i++
i = 2 < n, daher 2x2, p=4, i++
i = 3 = n, daher 4x2, p=8, i++
i = 4 > n, keine Rechnung, p=8, i++
return ist also 8