Loops

Loading concept...

🎢 The Magical Carousel of Loops in C++

Once upon a time, there was a magical carousel that could spin round and round, doing the same thing over and over until someone said “stop!” That carousel is just like loops in C++!


🎯 What Are Loops?

Imagine you have to say “I love coding!” ten times. Would you write it ten times? That sounds exhausting!

Loops are like having a helper robot that repeats tasks for you. You tell it what to do and how many times, and it does all the work!

graph TD A[Start] --> B{Should I repeat?} B -->|Yes| C[Do the task] C --> B B -->|No| D[Done!]

🎠 The While Loop: The Patient Waiter

Think of a while loop like a waiter who keeps asking “Are you ready to order?” until you finally say “Yes!”

The while loop checks the condition first, then does the task.

How It Works

int count = 1;
while (count <= 5) {
    cout << "Hello " << count;
    count++;
}
// Prints: Hello 1, Hello 2... Hello 5

The Story:

  1. 🧑 “Is count less than or equal to 5?” (Check first)
  2. ✅ “Yes! Let me say Hello and add 1”
  3. 🔄 Go back and ask again
  4. 🛑 “Count is 6 now? I’m done!”

When To Use It

Use while when you don’t know how many times you need to repeat. Like waiting for a friend to arrive—you don’t know when, but you keep looking!

// Keep asking until correct
while (answer != "yes") {
    cout << "Try again: ";
    cin >> answer;
}

🎪 The Do-While Loop: The Eager Performer

The do-while loop is like a performer who jumps on stage first, THEN asks “Should I do it again?”

It does the task at least once, then checks if it should repeat.

How It Works

int num;
do {
    cout << "Enter a number: ";
    cin >> num;
} while (num < 0);
// Asks at least once!

The Story:

  1. 🎭 Perform first (show the menu)
  2. 🤔 Then ask “Should I repeat?”
  3. 🔄 If yes, perform again
  4. 🛑 If no, stop

While vs Do-While

While Loop Do-While Loop
Checks before doing Does then checks
Might do zero times Does at least once
Like a careful guard Like an eager performer
// While: might never run
int x = 10;
while (x < 5) {
    cout << "Never see this";
}

// Do-While: runs once
int y = 10;
do {
    cout << "See this once!";
} while (y < 5);

🎡 The For Loop: The Organized Counter

The for loop is like a coach with a clipboard. It knows exactly:

  • Where to start 📍
  • When to stop 🛑
  • How to count 📝

Everything is organized in one neat line!

The Magic Formula

for (start; condition; step) {
    // do something
}

Real Example

for (int i = 1; i <= 5; i++) {
    cout << "Lap " << i << endl;
}
// Output: Lap 1, Lap 2... Lap 5

Breaking It Down:

  • int i = 1 → Start at 1
  • i <= 5 → Keep going while 5 or less
  • i++ → Add 1 after each lap
graph TD A[Start: i = 1] --> B{i <= 5?} B -->|Yes| C[Print Lap] C --> D[i++] D --> B B -->|No| E[Finish!]

Fun Patterns

Countdown:

for (int i = 5; i >= 1; i--) {
    cout << i << "... ";
}
cout << "Blastoff!";
// 5... 4... 3... 2... 1... Blastoff!

Count by Twos:

for (int i = 0; i <= 10; i += 2) {
    cout << i << " ";
}
// 0 2 4 6 8 10

🌈 Range-Based For Loop: The Smart Explorer

C++ has a super-smart loop that can explore collections automatically! It’s like having a tour guide who visits every room without needing directions.

The Simple Way

int scores[] = {90, 85, 88, 92};

for (int score : scores) {
    cout << score << " ";
}
// 90 85 88 92

Translation: “For each score in scores, print it!”

With Different Collections

// With strings
string name = "Hello";
for (char letter : name) {
    cout << letter << "-";
}
// H-e-l-l-o-

// With vectors
vector<int> nums = {1, 2, 3};
for (int n : nums) {
    cout << n * 2 << " ";
}
// 2 4 6

Pro Tip: Using References

vector<int> prices = {10, 20, 30};

// This COPIES each value (slower)
for (int p : prices) { }

// This uses the ORIGINAL (faster!)
for (int& p : prices) {
    p = p * 2; // Changes actual prices!
}

🚦 Break and Continue: The Traffic Lights

Sometimes you need to stop early or skip ahead. That’s where break and continue come in!

Break: The Emergency Stop 🛑

break says “STOP everything and exit the loop NOW!”

for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        break; // Exit immediately!
    }
    cout << i << " ";
}
// Output: 1 2 3 4
// (Stopped before printing 5!)

Real Example: Finding a number

int nums[] = {3, 7, 2, 9, 5};
for (int n : nums) {
    if (n == 9) {
        cout << "Found 9!";
        break; // Stop searching
    }
}

Continue: The Skip Button ⏭️

continue says “Skip this one, but keep going!”

for (int i = 1; i <= 5; i++) {
    if (i == 3) {
        continue; // Skip 3!
    }
    cout << i << " ";
}
// Output: 1 2 4 5
// (3 was skipped!)

Real Example: Skip negative numbers

int nums[] = {5, -2, 8, -1, 3};
for (int n : nums) {
    if (n < 0) continue;
    cout << n << " ";
}
// Output: 5 8 3

Quick Comparison

Break 🛑 Continue ⏭️
Exits the loop completely Skips to next iteration
“I’m done, goodbye!” “Skip this one, next!”
Use to stop early Use to filter items

🏰 Nested Control Structures: Loops Inside Loops

What if we put a loop inside another loop? That’s called nesting, like Russian dolls!

The Multiplication Table

for (int row = 1; row <= 3; row++) {
    for (int col = 1; col <= 3; col++) {
        cout << row * col << " ";
    }
    cout << endl;
}

Output:

1 2 3
2 4 6
3 6 9

How It Works:

graph TD A[Outer: row = 1] --> B[Inner: col = 1,2,3] B --> C[Print row x col] C --> D[Next row] D --> E[Inner: col = 1,2,3] E --> F[And so on...]

Star Pattern Magic ⭐

for (int i = 1; i <= 4; i++) {
    for (int j = 1; j <= i; j++) {
        cout << "*";
    }
    cout << endl;
}

Output:

*
**
***
****

Nested with Break

break only exits the innermost loop!

for (int i = 1; i <= 3; i++) {
    for (int j = 1; j <= 3; j++) {
        if (j == 2) break;
        cout << i << "," << j << " ";
    }
}
// Output: 1,1 2,1 3,1

Combining Loops with If

for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0) {
        cout << i << " is even" << endl;
    } else {
        cout << i << " is odd" << endl;
    }
}

🎯 Choosing the Right Loop

graph TD A[Need to repeat?] --> B{Know how many times?} B -->|Yes| C[Use FOR loop] B -->|No| D{Must run at least once?} D -->|Yes| E[Use DO-WHILE] D -->|No| F[Use WHILE] G{Have a collection?} --> H[Use RANGE-BASED FOR]

Quick Guide

Situation Best Loop
Count from 1 to 10 for
Repeat until user says stop while
Show menu at least once do-while
Visit every item in array range-based for

🌟 Key Takeaways

  1. While Loop → Checks first, might never run
  2. Do-While Loop → Runs once, then checks
  3. For Loop → Perfect for counting (start, condition, step)
  4. Range-Based For → Explores collections easily
  5. Break → Emergency exit from loop
  6. Continue → Skip current, continue looping
  7. Nested Loops → Loops inside loops for patterns and grids

💪 You’ve Got This!

Loops are like having superpowers—you can make the computer do repetitive tasks in seconds! Start with simple for loops, then explore the others as you grow.

Remember: Every expert was once a beginner. Keep practicing, and soon loops will feel as natural as breathing! 🚀

Loading story...

No Story Available

This concept doesn't have a story yet.

Story Preview

Story - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Interactive Preview

Interactive - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Interactive Content

This concept doesn't have interactive content yet.

Cheatsheet Preview

Cheatsheet - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Cheatsheet Available

This concept doesn't have a cheatsheet yet.

Quiz Preview

Quiz - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

No Quiz Available

This concept doesn't have a quiz yet.