# What is the difference between recursion and loop?

The main difference between recursion and loop is that recursion is a mechanism to call a function within the same function while loop is a control structure that helps to execute a set of statements over and over again until the given condition is true. .

### Key Areas Covered

1. What is recursion
– Definition, Functionality
2. What is loop
– Definition, Functionality
3. What is the difference between recursion and loop?
– Comparison of key differences

## what is recursion

When a function calls itself within the function, it is called recursion. An example of a program with recursion is the factorial calculus.

North! = n * (n-1) !, if n > 0

Based on the above program, create a factorial object. Then, using that object, call the factorial method. And, the method gets the value 4. Then the else section is executed. It is then called factorial (3). So the else section is executed. It is called factorial (2). The else section is then executed. Call factorial(1), and the else section is executed again. It is called factorial(0). Now n is 0. It returns 1. Finally, 1x2x3x4 = 24 is returned, and those values ​​are displayed on the screen. Likewise, a factorial function is called over and over again.

## what is loop

Sometimes it is necessary to execute a block of code repeatedly. Programming languages ​​provide a control structure called a loop to execute a set of instructions. Loop executes a statement inside the block one after another. There are three types of loops like while loop, for loop and while loop. On the other hand, an iteration also refers to a loop.

### while loop

A while loop contains a test expression. If that expression is true, the statements inside the while loop are executed. At the end of the statements, check the test expression again. This process then repeats until the test expression returns false. When the test expression is false, the while loop ends. Control then passes to the first statement after the while loop.

In the above program, x is 5. It is less than 10. So it will print. So the value of x increases. Now x is 6. It is also less than 10; Therefore, it will print. Then again the value of x increases. Now x is 7. Therefore, this process repeats. When x is 10, the condition is false and the loop ends.

### In loop

For loop contains initialization, test expression and update. The initialization expression is executed once. Then it evaluates the test expression. If true, the statements inside the for loop are executed. At the end of the loop, evaluate the updated expression. Therefore, this process is repeated until the test expression is false. When it is false, the loop ends. Control then passes to the next statement after the for loop.

In the above loop, the value of x is 1. It is less than 5. Therefore, the value will be printed. Then the value of x is incremented by 1. Now the value of x is 2. It is also less than 5. So it will print. So, again, the value of x is increased by 1. Now, x is 3. This process repeats. When x is 6, the test condition becomes false and the loop ends.

### do while loop

The while loop is similar to the while loop, but it tests the condition after executing the statements in the loop. Therefore, if the condition is true or false, the loop is executed at least once. Here, the condition check occurs after the loop is executed. If the condition is true, the loop statements will be executed again. This process is repeated until the condition becomes false.

The value of x is initially 5. The do while loop executes and prints the value 5. Then x becomes 6. It is less than 10. So 6 will be printed. Then x becomes 7. It is also less than 10. And, this process repeats. When x is 9, the value is printed. But, when x becomes 10, the condition becomes false. Therefore, the loop ends.

For example, suppose x is initially 20. It will print 20. Then x will increase and x will become 21. The test condition is false. Therefore, the loop will end. The value 20 is greater than 10 and the test condition is false. However, the loop executes once. Therefore do while loop is executed at least once.

## Difference Between Recursion and Loop

### Definition

Recursion is a method to call a function within the same function. In contrast, loop is a control structure that allows a block of code to be executed repeatedly within the program. These definitions contain the fundamental difference between recursion and loop.

### Speed

Speed ​​is an important difference between recursion and loop. Recursion execution is slower. However, the loop executes faster than the recursion.

In recursion, the stack is used to store local variables when the function is called. But, the loop doesn’t use stack.

### Condition

If there is no termination condition, it can be an infinite recursion. However, if the condition never returns false, it will be an infinite loop. This is another difference between recursion and loop.

### spatial complexity

Also, the complexity of the recursive program space is higher than a loop.