1.2.17 · HinglishIntroduction to Programming (Python)

while loop — condition-based, infinite loop dangers

1,553 words7 min readRead in English

1.2.17 · Coding › Introduction to Programming (Python)


WHAT it is

Teen cheezein jo HAMESHA chahiye:

  1. Initialise — loop se pehle ek variable exist karta ho.
  2. Condition — ek boolean jo us variable ko use kare.
  3. Update — body andar kuch aisa jo condition ko False ki taraf dhakele.

WHY it exists (aur HOW it runs)

HOW Python isko execute karta hai (step trace):

i = 1                # 1. initialise
while i <= 3:        # 2. condition check  -> True?
    print(i)         # 3. body run karo
    i = i + 1        # 4. update -> step 2 par wapas jao

Trace table (Yeh step kyun? = "har check dikhao, including final wala jo fail hota hai"):

Step i i <= 3? Action
check 1 True print 1, i→2
check 2 True print 2, i→3
check 3 True print 3, i→4
check 4 False loop exit

Condition 4 baar check hoti hai 3 numbers print karne ke liye — aakhri check wahi hai jo isko end karta hai. Is off-by-one ko bhoolna #1 bug ka source hai.

Figure — while loop — condition-based, infinite loop dangers

Worked examples


The infinite-loop danger


Recall Feynman: 12-saal ke bachche ko samjhao

Socho tum ek bucket ko cup se bhar rahe ho. Har scoop se pehle tum andar jhaankte ho aur poochte ho: "Kya bucket abhi bhi bhari nahi hai?" Agar haan, toh ek aur scoop laate ho. Agar bucket bhar gayi, toh ruk jaate ho. "Jhaankna" hai condition, "scoop lena" hai body, aur paani daalna hai update. Agar tum jhaankate ho lekin paani nahi daalta (koi update nahi), toh bucket kabhi nahi bharegi — toh tum hamesha scoop karte rehte ho aur haath thak jaata hai. Woh endless scooping hai infinite loop.


Flashcards

When is a while loop's condition evaluated relative to the body?
Har iteration se pehle (pre-test loop); body zero baar bhi run ho sakta hai.
What causes an accidental infinite loop?
Ek aisi condition jo kabhi False nahi hoti — usually ek missing ya misplaced update statement.
Difference between for and while in intent?
for = pata iteration count; while = tab tak repeat karo jab tak condition change ho, count pehle se nahi pata.
Why avoid while x == target: with floating-point updates?
Float arithmetic kabhi kabhi exactly kisi value par nahi utarti; condition target ko skip kar sakti hai aur loop hamesha chalata rahe. </> comparisons use karo.
What does break do inside while True:?
Turant loop se bahar nikal jaata hai, intentionally infinite loop ke liye real, controlled stop provide karta hai.
In while i <= 3: print(i); i+=1 starting i=1, how many times is the condition checked?
4 baar (3 True + 1 final False jo isko end karta hai).
What key combo stops a runaway loop in a terminal?
Ctrl + C.
What error does while x = 5: produce?
SyntaxError — = assignment hai, comparison ke liye == chahiye.

Connections

Concept Map

hai ek

body tab tak run karta hai jab

check hoti hai pehle

3 parts chahiye

3 parts chahiye

3 parts chahiye

use hota hai

dhakelta hai taraf

cause karta hai

agar bhool gaye

for se prefer karo jab

while loop

pre-test loop

condition True

har iteration

Variable Initialise karo

Boolean condition

Body mein Update

condition False

loop exit

infinite loop

iteration count unknown ho