Recursion

The AP CS A exam usually has about 4-6 recursion problems. You only need to know how to trace recursive methods (figure out what they return or print). You will not be asked to write a recursive method on the exam.

What is Recursion?

Recursion is when a method calls itself. See the example method below.

1
2
3
4
5
public static void neverEnd()
{
  System.out.println("This is the method that never ends!");
  neverEnd();
}

This method will print out “This is the method that never ends!” and then call itself, which will print out the message again, and then call itself, and so on. This is called infinite recursion, which is a recursion that never ends. Of course, this particular method is not very useful.

Which line in the method neverEnd (shown above) contains the recursive call (the call to the same method)? Look for the call to the same method name

Here is another method that calculates the factorial of a number. The factorial of a number is defined as 1 for 0 and n * factorial (n-1) for any other number.

1
2
3
4
5
6
7
public static int factorial(int n)
{
  if (n == 0)
    return 1;
  else
    return n * factorial(n-1);
}

Which line in the method factorial contains the recursive call (the call to the same method)? Look for the call to the same method name

The factorial method has a way to stop. The recursion stops when n is equal to 0.

Note

The thing that stops a recursive method from calling itself is called the base case. A method can have more than one base case (way to stop the recursion).

Check your understanding

Next Section - Why use Recursion?