Use recursion for clarity, and (sometimes) for a reduction in the time needed to write and debug code, not for space savings or speed of execution.
Remember that every recursive method must have a base case (rule #1).
Also remember that every recursive method must make progress towards its base case (rule #2).
Sometimes a recursive method has more to do following a recursive call. It gets done only after the recursive call (and all calls it makes) finishes.
Recursion is often simple and elegant, can be efficient, and tends to be underutilized. Consider using recursion when solving a problem!