@ayanda so this function is just doing the same thing as the recursive function in the other post I answered, except using a loop instead of a recursive function. In this case:
- We give the
fact
variable a starting value of 1
- the loop starts to run, and will keep running until the
num
value is no longer bigger than 0
- On each loop iteration, the
fact
value is set to fact
's existing value, multiplied by the current value of num
-
num
then has 1 subtracted from its value
- When
num
's value gets to below 1, the loop stops running, and the final value of fact
is returned.
So if we run factorial(4)
:
- The starting value of
num
is 4, and the starting value of fact
is 1.
- After the first iteration of the loop,
num
is 3 (4 - 1) and fact
is 4 (1 * 4).
- After the second iteration of the loop,
num
is 2 (3 - 1) and fact
is 12 (4 * 3).
- After the third iteration of the loop,
num
is 1 (2 - 1) and fact
is 24 (12 * 2).
- After the fourth iteration of the loop,
num
is 0 (1 - 1) and fact
is 24 (24 * 1).
- The loop then stops running because
num
is no longer more than 0, and the final fact
value of 24 is returned.