The while
Loop in Python
The while
loop in Python is used to repeatedly execute a block of code as long as a specified condition is True
. Unlike the for
loop, which iterates over a sequence, the while
loop continues indefinitely until the condition evaluates to False
.
1. Basic Syntax of the while
Loop
The basic syntax of a while
loop is as follows:
while condition:
# Code to execute as long as the condition is True
condition
: This is an expression that is evaluated before each iteration. If it evaluates toTrue
, the loop runs; if it evaluates toFalse
, the loop stops.- The indented block of code is executed repeatedly until the condition becomes
False
.
Example:
counter = 0
while counter < 5:
print(counter)
counter += 1 # Increment the counter by 1
Output:
0
1
2
3
4
In this example, the loop runs as long as the counter
is less than 5. Each time the loop executes, the counter is incremented by 1, and once the counter reaches 5, the condition becomes False
, and the loop stops.
2. Infinite Loops
A while
loop can run indefinitely if the condition always evaluates to True
. These are called infinite loops and can be dangerous if not handled properly.
Example of an Infinite Loop:
while True:
print("This loop will run forever!")
To stop an infinite loop, you can interrupt the program (in many environments, this is done by pressing Ctrl+C
).
However, you can use a condition to break out of an infinite loop safely, such as with a break
statement.
3. The break
Statement
The break
statement is used to exit a while
loop prematurely, regardless of the condition. This is useful when you need to stop the loop based on some other condition inside the loop.
Example:
counter = 0
while counter < 10:
if counter == 5:
break # Exit the loop when counter reaches 5
print(counter)
counter += 1
Output:
0
1
2
3
4
Here, the loop will stop when counter
reaches 5, even though the condition (counter < 10
) is still True
.
4. The continue
Statement
The continue
statement is used to skip the rest of the code inside the while
loop for the current iteration and jump to the next iteration of the loop.
Example:
counter = 0
while counter < 5:
counter += 1
if counter == 3:
continue # Skip the iteration when counter equals 3
print(counter)
Output:
1
2
4
5
In this example, when counter
equals 3, the continue
statement is executed, and the loop moves to the next iteration without printing 3
.
5. Using else
with the while
Loop
The else
block can also be used with a while
loop. It will execute if the loop terminates normally (i.e., without being interrupted by a break
statement).
Example:
counter = 0
while counter < 5:
print(counter)
counter += 1
else:
print("The loop has finished.")
Output:
0
1
2
3
4
The loop has finished.
In this case, the else
block runs once the loop completes normally (i.e., when counter
reaches 5).
Example with break
:
counter = 0
while counter < 5:
print(counter)
counter += 1
if counter == 3:
break # Break out of the loop when counter reaches 3
else:
print("The loop has finished.")
Output:
0
1
2
In this case, the else
block is not executed because the loop was terminated early by the break
statement.
6. Nested while
Loops
You can nest while
loops within other while
loops. This is useful when you need to perform more complex repeated tasks.
Example:
i = 0
while i < 3:
j = 0
while j < 3:
print(f"i = {i}, j = {j}")
j += 1
i += 1
Output:
i = 0, j = 0
i = 0, j = 1
i = 0, j = 2
i = 1, j = 0
i = 1, j = 1
i = 1, j = 2
i = 2, j = 0
i = 2, j = 1
i = 2, j = 2
In this example, the outer loop (i
) runs 3 times, and for each iteration of i
, the inner loop (j
) also runs 3 times. This is an example of a nested while
loop.
7. User Input and while
Loop
A common use case for the while
loop is to repeatedly ask for user input until a valid input is given. The loop will continue until a specified condition is met.
Example:
while True:
user_input = input("Enter a number between 1 and 10: ")
if user_input.isdigit() and 1 <= int(user_input) <= 10:
print(f"Thank you! You entered: {user_input}")
break
else:
print("Invalid input. Please try again.")
In this example, the program will continue asking for a valid input until the user enters a number between 1 and 10.
Summary
- Basic syntax: The
while
loop executes a block of code as long as a condition isTrue
. - Infinite loops: A
while
loop can run forever if the condition never becomesFalse
. It can be controlled usingbreak
orcontinue
. break
: Used to exit the loop prematurely.continue
: Skips the current iteration and proceeds to the next iteration.else
: Executes if the loop finishes normally (withoutbreak
).- Nested loops: You can nest
while
loops within otherwhile
loops. - User input:
while
loops are commonly used to validate or repeat tasks based on user input.
Mastering the while
loop allows you to create more flexible and dynamic programs that can handle different types of repetitive tasks.