← Back to Blog

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
  • break stops 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 sequences
  • for + if — filter at any level
  • while + for — outer controls duration, inner processes sequences
  • break stops only its own loop — flag variables stop multiple levels
  • Accumulators: define before, update inside, use after
[ login to bookmark ] // copied! 23 views · 2 min
// resources
Cheatsheet nested_loops_cheatsheet.pdf
← prev Common Nested Loops Mistakes next → This is where it all starts to make sense
// 0 comments
// No comments yet. Be the first.
// leave a comment

// Your comment will appear after approval.