Download Objektorientierte Softwareentwicklung

Transcript
Kapitel 3 Imperative und funktionale Konzepte
Wir können dieses Programm von Hand ausführen, indem wir den Methodenaufruf
für fac für einen konkreten Parameter i durch die für diesen Wert zutreffende
Alternative der Bedingungsabfrage ersetzen. Wir kennzeichnen einen solchen Ersetzungsschritt durch einen Pfeil →:
fac(4)
→4*fac(4-1)
→4*fac(3)
→4*(3*fac(3-1))
→4*(3*fac(2))
→4*(3*(2*fac(2-1)))
→4*(3*(2*fac(1)))
→4*(3*(2*(1*fac(1-1))))
→4*(3*(2*(1*fac(0))))
→4*(3*(2*(1*1)))
→4*(3*(2*1))
→4*(3*2)
→4*6
→24
3.4.1 Rekursion und Schleifen
Schleifen und Rekursion sind beide dazu geeignet, um Code-Teile wiederholt
auszuführen. Man kann auch argumentieren, dass Schleifen ein zusätzliches Konstrukt von Programmiersprachen sind, mit denen sich Rekursion optimierter ausführen lassen können. Betrachten wir die for-Schleife, so lässt sich diese eigentlich
immer direkt in eine rekursive Methode umschreiben.
70