Printing Numbers Using Recursion in Java

Bhagyashree Sahu
3 min readJun 11, 2024

Step-by-Step Guide to Print Number Using Recursion:

In programming, a function is able to call itself with recursion. It is a useful technique for solving problems that can be decomposed into smaller, similar sub-problems. In this blog, you will get to know how to print natural number from 1 to a specific limit using Recursion in Java without any loops.

The Problem Statement

Here, we are trying to print numbers between 1 to a user-defined maximum limit, which will be provided by User Input and obviously without any sort of loops in this approach. We can solve our problem using recursion instead of going through the loops

The Code

This is the Java code to achieve our aim,

Explanation

Let’s break down the code step-by-step to understand how it works.

1. Importing Required Classes

import java.util.InputMismatchException;
import java.util.Scanner;

We import Scanner for taking user input and InputMismatchException for handling input errors.

2. Declaring the Class and Variable

public class PrintNumbersRecursion {
static int maxLimit;

We declare a public class PrintNumbersRecursion and a static variable maxLimit to store the user-defined maximum limit.

3. Main Method

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
    try {
System.out.println("Enter the maximum limit till which numbers should be printed: ");
maxLimit = sc.nextInt();
if (maxLimit <= 0) {
System.out.println("Please enter a positive integer.");
} else {
printNumbers(1);
}
} catch (InputMismatchException e) {
System.out.println("Invalid input. Please enter a valid integer.");
} finally {
sc.close(); // Ensure the Scanner is closed
}
}

In the main method, we:

  • Create a Scanner object to read user input.
  • Prompt the user to enter the maximum limit.
  • Read the user input and store it in maxLimit.
  • Check if the input is a positive integer. If not, we display an error message.
  • If the input is valid, we call the printNumbers method starting from 1.
  • Use a try-catch-finally block to handle potential input mismatches and ensure the Scanner is closed.

4. The Recursive Method

public static void printNumbers(int n) {
// Base case
if (n > maxLimit) {
return;
}
    // Print the current number
System.out.println(n);
// Recursive call to print the next number
printNumbers(n + 1);
}

The printNumbers method is where the recursion happens. Here's how it works:

  • Base Case: The method stops calling itself when n exceeds maxLimit.
  • Print Current Number: The current number n is printed.
  • Recursive Call: The method calls itself with the next number (n + 1).

Key Takeaways

  • Recursion: This technique lets a method call itself, making it a powerful way to handle repetitive problems. It’s like breaking down a big task into smaller, more manageable steps.
  • Base Case: Always define a base case to stop the recursion. Think of it as setting a finish line so the process knows when to stop.
  • Input Validation: Always check user input to ensure your program runs smoothly. It’s like double-checking the instructions before starting a task.
  • Resource Management: Remember to close resources like Scanner to prevent resource leaks. It’s like cleaning up your workspace after you’re done.

Conclusion

Recursion can be a bit tricky to understand at first, but once you understand it, it becomes an incredibly useful tool in your programming toolkit. This simple example of printing numbers shows how recursion can replace loops in some situations, making your code cleaner and more expressive. Give recursion a try in your projects and see how it can simplify even the most complex tasks!

--

--