005
09.07.2003, 23:32 Uhr
Pablo
Supertux (Operator)
|
Wichtig bei einer Rekursion ist, dass du eine Abbrechbedingung findest, d.h. eine Stelle der rekursiven Funktion findest, so dass die Funktion irgendwann stopt. Bsp: a^b := pow(a,b) Mathematisch ist die Potenzierung rekursiv definiert. pow(a,b) = 1 falls b == 0 pow(a,b) = a*pow(a,b-1), sonst
In diesem Fall ist pow(a,b)=1 die Abbruchbedingung. pow(a,b-1) dekrementiert zwar b um 1 bis irgendwann b == 0, dann stop. Sagen wir mal, ich hätte aus Versehen die Abbruchbedingung vergessen. Dann würde meine Funktion eine endlos Schleife sein, also wenn du wa rekursives programmierst, immer daran denken, dass die Funktion irgendwo (oder besser gesagt, irgendwann) terminiert wird -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! |