In Post #31, we learned how to use while
loops to repeat code. We saw that a proper loop has three key parts: an initialization, a condition, and an update step. That update step, we noted, was the most critical part for ensuring the loop eventually ends.
In this post, we’re going to explore what happens when that update step is missing or incorrect. We will learn about a common bug called an infinite loop, how to stop one when you see it, and how to ensure your loops always have a clear “terminating condition.”
What is an Infinite Loop?
An infinite loop is a loop whose condition never evaluates to False
. Because the condition is always True
, the loop will run forever. When this happens, your program will appear to be “stuck” or “frozen,” endlessly repeating the same task and never moving on to the code that comes after it.
This is almost always a bug and can cause your program to consume a lot of system resources.
How to Create an Infinite Loop (By Accident!)
The most common way beginners create an infinite loop is by forgetting to update the variable that the loop’s condition depends on.
Let’s take our counter example from the last post and simply comment out the update line:
counter = 1
while counter <= 5:
print("This will print forever!")
# counter += 1 <-- We forgot to include the update!
If you run this code, it will print “This will print forever!” over and over, filling your screen. Let’s trace why:
counter
is initialized to1
.- The loop checks the condition: Is
1 <= 5
? Yes, this isTrue
. - The loop body executes, printing the message.
- The loop goes back to the top and checks the condition again. What is the value of
counter
? It’s still1
. - Is
1 <= 5
? Yes, this isTrue
. - The loop body executes again.
The value of counter
never changes, so the condition will never become False
. The loop has no way to end.
How to Stop a Runaway Program
If you accidentally run a script with an infinite loop, don’t panic! There is a universal command to force-stop a program that is running in your terminal.
In your terminal, press Ctrl + C
. (On some Mac keyboards, this may be Cmd + C
).
This key combination sends a “KeyboardInterrupt” signal to your program, telling it to stop immediately. You’ll see an error message in your terminal, but that’s perfectly normal—it’s just Python telling you that you forced it to stop. Go ahead and try it with the broken code above.
Ensuring a Terminating Condition
An infinite loop occurs because its terminating condition is never met. A terminating condition is the state that will eventually make your loop’s condition False
.
To write a reliable while
loop, you must always ensure that something inside the loop’s body makes progress towards this terminating condition. Always double-check the three essential components:
- Initialize your variable (e.g.,
count = 0
). - Test your variable in the
while
condition (e.g.,while count < 5:
). - Update your variable inside the loop so it eventually fails the test (e.g.,
count += 1
).
Forgetting step 3 is the primary cause of infinite loops.
What’s Next?
You now know what an infinite loop is, how to stop one with Ctrl + C
, and, most importantly, how to prevent them by ensuring your while
loops always have a clear path to termination. This is a critical skill for writing reliable programs.
While infinite loops are often bugs, the idea of a loop that runs until the user decides to quit is actually very useful. In Post #33, we will build on this idea in a controlled way to create our next mini-project: a simple, interactive menu that keeps running until the user chooses an “exit” option.
Author

Experienced Cloud & DevOps Engineer with hands-on experience in AWS, GCP, Terraform, Ansible, ELK, Docker, Git, GitLab, Python, PowerShell, Shell, and theoretical knowledge on Azure, Kubernetes & Jenkins. In my free time, I write blogs on ckdbtech.com