I've had this topic sitting open in a tab in my browser for nearly two months now, so it's time to be done with it. I just wanted to interject that recursion is probably the worst (read: slowest and most memory-intensive) way to loop (yes, I'm looking at you, Haskell). As the people in this topic have indicated, you have tons of other options, ranked from least appropriate to most appropriate:
1: Lbl and Goto: While this works for loops, it is discouraged. You should use Lbl and Goto for jumping between large sections of your program if you must, but not for tight loops. It is not memory-intensive, but it is slow, and it gets slower the further down in your program the target Lbl is.
2: For: In the particular case you mention, For() doesn't make much sense, because it is primarily used for loops with fixed numbers of iterations.
3: While: While would be a good choice, but you'd need slightly more code to initialize the escape condition before the first run. For example:
Code: :1->C:While C
:<run code>
:Input "AGAIN (1=YES, 0=NO)", C
:End
4: Repeat: This would be the most appropriate choice, as the loop will always run at least once regardless of the condition: Code: Repeat C
:<run code>
:Input "AGAIN (1=YES, 0=NO)", C
:End
Good luck.