Recursion is similar to that of a loop. Similarly, just like loops, recursion is a set of repeating instructions requiring a control variable to terminate. One subtle difference between recursion and a loop is that it is always nested inside of a function, whereas loops are usually used in the main program. In short, recursion is a function that is being called inside of that same function to perform a specific number of cycles of calculations. The main benefit of using recursion over a loop is that it increases code readability. One major use case for recursions is within a multiplayer shooter game. In a first-person shooting game, the total damage from a player’s weapon is usually calculated based on a specific formula. Also, with each shot, the damage of the subsequent shots is multiplied using the total damage from the previous shots. Therefore, in this case, since the calculation repeats using the same formula and is based on a previous calculation, a loop will not be very efficient. In this case, it is more justified to use a recursive function to simplify the otherwise long loop script by calling the previous function repeatedly until the user stops providing new input.