Recursion is a programming technique in which a method calls itself.
A key to being able to program recursively is to learn to think recursively.
Any recursive definition must have a non-recursive part, called the base case, which permits the recursion to eventually end.
Each recursive call to a method creates new local variables and parameters.