// Control Flow
Nested Loops & Patterns — The Full Picture
The idea!
You've covered nested loops — for + for, for + if, while + for — and built real programs with all of them.
This is your reference. Everything in one place.
Come back here whenever you need a reminder.
for + for — nested loops
for i in range(1, 4):
for j in range(1, 4):
print(f"{i} x {j} = {i * j}")
Inner loop completes fully before outer moves on. Total iterations = outer × inner.
for + if — filter while you iterate
word = "RedHorn"
vowels = "aeiou"
for letter in word:
if letter.lower() in vowels:
print(f"{letter} — vowel")
if can go at any level — outer, inner, or both. Filters what happens with each item.
while + for — outer controls, inner processes
while True:
word = input("Enter a word (or 'quit'): ")
if word == "quit":
break
count = 0
for letter in word:
if letter.lower() in "aeiou":
count += 1
print(f"Vowels: {count}")
while sets the pace. for does the work. Each has its job.
break in nested loops
# break stops only its own loop
for word in words:
for letter in word:
if letter == target:
break # stops inner — outer keeps going
# to stop both — use a flag
found = False
for word in words:
for letter in word:
if letter == target:
found = True
break
if found:
break
Accumulator in nested loops
count = 0 # define before outer loop
for word in words:
for letter in word:
if letter in vowels:
count += 1 # update inside inner loop
print(count) # use after outer loop
Define before. Update inside. Use after. Same pattern — just more levels.
Common Mistakes
- Indentation defines which loop a line belongs to — one space off changes everything
breakstops only its own loop — use a flag to stop the outer one- Define accumulators before the loop that uses them — never inside
- Nested loops multiply iterations — keep sequences small, levels shallow
- Use different variable names at each level — never reuse
What you should understand now
for+for— every combination of two sequencesfor+if— filter at any levelwhile+for— outer controls duration, inner processes sequencesbreakstops only its own loop — flag variables stop multiple levels- Accumulators: define before, update inside, use after
// resources
// 0 comments
// No comments yet. Be the first.
// leave a comment