this post was submitted on 16 Dec 2023
32 points (97.1% liked)
Programming
17436 readers
213 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities [email protected]
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I see. I guess my understanding was that the recursion was over after the recursive call, but it's actually for all the code in draw().
Yes, to better understand this you have to understand the "flow" of the program. Meaning the order at which the instructions are executed and not written.
Here you have the flow of the program starting from n =3 until the recursion reach draw(0), note that none of the for loop have been executed yet. At this point it reach the first "return" instruction and go finish the call to draw(0).
Then the flow go back to where it previously was: inside the draw(1) call just after the line calling draw(0). And it start executing the next lines of the draw(1): the for loop.
Then it reach the second "return" and proceed again until the whole program is over.
Yes, that helps. Thanks. I see now how n goes from 1 to 2 to 3...etc. Now not so sure how i = 1 when the for loop starts.
When called with n=1 ? It's from i=0 to i<1, so it will do only one iteration with i=0 and print one #.