Recursion in Java

What is recursion? The simple answer; it’s when a method calls itself. But, how does this happen? And why?

As you know, a method is a block of code that only executes when it is called. But if inside that method was another call to the method itself, a sort of loop affect is created. Recursion is another way to make a loop.

Let’s look at an example:

public class MyClass {

  static void myMethod(int i) {
    System.out.println(i);
    i++;
    if(i < 10) {
      myMethod(i);
    }
  }

  public static void main(String[] args) {

    myMethod(0);
  }
}

In this example, we have a method named ‘myMethod‘ with a parameter list of (int i). Down in the main part of this program, we made a call to the method only once, supplying an argument of 0, which the method stores in int i. But inside the method, after printing the value of int i and increasing it by 1, we have an ‘if‘ statement.

If the current value of int i is less than 10, we make a new call to ‘myMethod‘, now supplying the updated value of int i as an argument.

Because the new call to ‘myMethod‘ came from inside the body of ‘myMethod‘, we say the method called itself. And this is recursion.

The output of this program is:

0
1
2
3
4
5
6
7
8
9

Just remember when making a recursive loop to have a conditional check that can end the loop. Otherwise, you end up with a method that has endless recursion.

Next Topic: Arrays

Comments

Popular Posts