When do we use a for-loop and when a while-loop?

In general, a for-loop is used when the number of iterations is predefined, and a while-loop is used when the number of iterations is not known in advance. When a for-loop is used, a while-loop can also be used. In this case, we usually prefer using a for-loop, due to the simplicity of its syntax. One example where both types can be used is shown below.

Write a short program to print the numbers 1 to 10.
For-loop:
for i in range(1,10): print(i) While-loop:
i = 1 while (i <= 10): print(i) i += 1
However, this does not work the other way around. Here is an example, where only a while-loop can be used.

Write a short program to calculate the sum of the numbers that the user enters. The program terminates when the user enters a negative number.
While-loop:
message = “Please enter a number!” x = input(message) sum = 0 while(x >= 0): sum += x x = input(message)
There is no way that the above example can be implemented using a for-loop as we don’t know how many numbers the user will enter before entering a negative number. On top of that, every time that the program is executed a different amount of numbers will be entered depending on the situation.

EM

Related Python Mentoring answers

All answers ▸

What is the difference between DFS and BFS? Where can I apply each?


What is the difference between & and && operators?


Write a function s(n) that will return a list of the first n squares.


Ask the user for a number and output the smallest divisor, bigger than one, for the inputted number. Output "Prime" if the number is a prime number.