
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Differences Between Recursion and Iteration in Java
The Recursion and Iteration both repeatedly execute the set of instructions. Recursion is when a function calls itself repeatedly. The iteration is when a loop repeatedly executes until the controlling condition becomes false.
The primary difference between recursion and iteration is that recursion repeats the statement in a function, whereas iteration is applied to the set of instructions that we want to execute repeatedly.
In this article, we will compare recursion and iteration in Java and discuss the difference between them. Before we proceed, it is important to understand these two concepts with an example.
Recursion in Java
Recursion is a programming practice that allows a method to call itself as often as necessary. The method that calls itself is called a recursive method. It should be noted that while working with recursion, we need to provide a base case that helps the recursive method return the result or, terminate the method call.
Example
The following Java program shows the use of recursion in Java. It calculates the factorial of the specified number.
public class RecursionExample { public static void main(String args[]) { RecursionExample re = new RecursionExample(); int result = re.factorial(4); System.out.println("Result:" + result); } public int factorial(int n) { if (n==0) { return 1; } else { return n*factorial(n-1); } } }
Following is the output of the above Java program:
Result:24
Iteration
The iteration is the process of repeatedly executing a block of code until a specified condition is met. For iteration, use for loop, while loop, and forEach() method.
Example
The following Java program shows the use of iteration:
public class IterationExample { public static void main(String args[]) { for(int i = 1; i <= 5; i++) { System.out.println(i + " "); } } }
Output of the above Java code is given below:
1 2 3 4 5
Recursion VS Iteration in Java
In the table given below, the difference between recursion and iteration is listed:
Recursion |
Iteration |
---|---|
Recursion uses a selection structure. |
Iteration uses a repetition structure. |
Infinite recursion occurs if the recursion step does not reduce the problem in a manner that converges on some condition (base case), and Infinite recursion can crash the system. |
An infinite loop occurs with iteration if the loop condition test never becomes false, and Infinite looping uses CPU cycles repeatedly. |
It terminates when a base case is recognized. |
An iteration terminates when the loop condition fails. |
It is usually slower than iteration due to the overhead of maintaining the stack. |
An iteration does not use the stack so it's faster than recursion. |
Recursion uses more memory than iteration. |
It consumes less memory. |
It makes the code smaller. |
It makes the code longer. |