๐ C++ Programming Lesson 10: Detailed Explanation and Principles of the for Loop – Automating Code Repetition

๐ Course Navigation
1ใ๐ค Why do we need the for loop? (Corresponding to “repetitive scenarios” in life)2ใ๐ Syntax structure of the for loop (Composed of three parts, clearly broken down)3ใโ๏ธ Execution principles of the for loop (Step by step, see how the code runs)4ใ๐งช Practical case: Solving problems with the for loop (From simple to advanced)5ใโ ๏ธ Common mistakes and pitfalls (Avoid loops “running away” or “not executing”)6ใ๐ข Next lesson preview: Combining for with cin and if (making loops more “intelligent”)
1. ๐ค Why do we need the for loop? – Repetitive scenarios in life
There are many scenarios in life where we need to “do something repeatedly”, for example:
- ๐ The teacher asks you to “copy a poem 10 times” – repeating “writing the poem” 10 times;
- ๐ Your mom asks you to “wash 5 apples” – repeating “washing apples” 5 times;
- ๐ฎ In a game, “spawn 1 enemy every second, 3 times” – repeating “spawning enemies” 3 times.
If we encounter such “repetitive operations” in code, we can’t just write the same code 10 times or 5 times, right? For example, if we want to “print ‘I love programming’ 5 times”, without a for loop, we would have to write 5 lines of cout:
// Without for loop, repeating code is cumbersome
cout << "I love programming" << endl;
cout << "I love programming" << endl;
cout << "I love programming" << endl;
cout << "I love programming" << endl;
cout << "I love programming" << endl;
However, using the for loop, we can accomplish it in just 3 lines of code! It acts like a “code automation tool”, helping you automatically repeat the specified code block, making it concise and less error-prone~

2. ๐ Syntax structure of the for loop – Composed of three parts
The syntax of the for loop is particularly structured, like a “command”, consisting of three parts: “initialization, condition check, update”, separated by semicolons:
for (initialization expression; condition check expression; update expression) { // Loop body: code to be repeated (can be one line or multiple lines)}
Using the example of “copying a poem 10 times”, we can correspond each part:
|
Syntax Part |
Function (corresponding to “copying a poem 10 times”) |
Code Example (printing 1-5) |
|
Initialization Expression |
Determines “where to start” (for example, starting from the 1st time) |
int i = 1 |
|
Condition Check Expression |
Determines “when to stop repeating” (for example, stop at the 10th time) |
i <= 5 |
|
Update Expression |
Determines “how to change after each repetition” (for example, after completing 1 time, increment by 1) |
i++ (i increments by 1) |
|
Loop Body |
What needs to be repeated (for example, “copying a poem” or “printing numbers”) |
cout << i << endl |
Complete code example (printing 1-5):
#include <iostream>
using namespace std;
int main() { // Print 1 to 5, repeat 5 times
for (int i = 1; i <= 5; i++) {
cout << "Current number:" << i << endl;
}
return 0;
}
Running result:
Current number: 1
Current number: 2
Current number: 3
Current number: 4
Current number: 5
3. โ๏ธ Execution principles of the for loop – Step by step
Many beginners use the for loop but do not know how it “runs internally”. In fact, it is like a “little robot executing step by step”. Let’s take the example of “printing 1-5” and break it down into 5 steps:
Execution Steps (corresponding to code for (int i=1; i<=5; i++) { cout << i; }):
- Step 1: Execute the “initialization expression” โ Only executed once!
Assign value to variable i: i = 1 (determining to start from 1);
- Step 2: Execute the “condition check expression” โ Must check before each loop!
Check if i <= 5 holds true:
- First time: 1 <= 5 holds true โ Enter the loop body;
- Step 3: Execute the “loop body” โ Only executes if the condition holds true!
Print the value of i (first time printing 1);
- Step 4: Execute the “update expression” โ Update only after the loop body executes!
i++ โ i changes from 1 to 2 (preparing for the next loop);
- Step 5: Repeat steps 2 to 4 โ Until the condition no longer holds true!
- Second time: Check if 2 <= 5 holds true โ Print 2 โ i changes to 3;
- Third time: Check if 3 <= 5 holds true โ Print 3 โ i changes to 4;
- Fourth time: Check if 4 <= 5 holds true โ Print 4 โ i changes to 5;
- Fifth time: Check if 5 <= 5 holds true โ Print 5 โ i changes to 6;
- Sixth time: Check if 6 <= 5 does not hold true โ Exit the for loop, end!
๐ Summary of principles:
โInitialize once โ Check โ Execute โ Update โ Check โ Execute โ Update โ โฆ โ Exit when condition no longer holds trueโ
4. ๐งช Practical case: Solving problems with the for loop
After learning the syntax and principles, let’s practice with 3 cases, from simple to advanced!
Case 1: Calculate the sum from 1 to 10 (accumulation problem)
Requirement: Calculate the result of 1+2+3+โฆ+10.
#include <iostream>
using namespace std;
int main() {
int sum = 0; // Variable to store the total sum, initialized to 0
// Loop from 1 to 10, adding i to sum each time
for (int i = 1; i <= 10; i++) {
sum = sum + i; // Equivalent to sum += i
}
cout << "The sum from 1 to 10 is:" << sum << endl; // Output 55
return 0;
}
Principle: Each time through the loop, add the value of i to sum, for example, the first time sum=0+1=1, the second time sum=1+2=3, until i=10 when sum=55.
Case 2: Print numbers from 10 to 1 (reverse loop)
Requirement: Print from 10 down to 1 (10, 9, 8โฆ1).
#include <iostream>
using namespace std;
int main() { // Initialize i=10, condition i>=1, update i-- (i decrements by 1)
for (int i = 10; i >= 1; i--) {
cout << i << " ";
}
return 0;
}
Running result: 10 9 8 7 6 5 4 3 2 1
Tip: For reverse loops, just change the “initialization (start from a larger number), condition (greater than or equal to the target number), update (decrement)”.
Case 3: Print 5 rows of “*”, 5 per row (introduction to nested loops)
Requirement: Print a 5×5 “” square (5 per row, total 5 rows).
#include <iostream>
using namespace std;
int main() { // Outer loop: controls the number of rows (1 to 5 rows)
for (int row = 1; row <= 5; row++) { // Inner loop: controls the number of * per row (1 to 5)
for (int col = 1; col <= 5; col++) {
cout << "* ";
}
cout << endl; // End of each row, move to the next line
}
return 0;
}
Running result:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Principle: The outer loop runs once (1 row), and the inner loop runs 5 times (5 *), so a total of 5×5=25 * are printed.
5. โ ๏ธ Common mistakes and pitfalls
Although the for loop is useful, beginners often make these 3 mistakes, so be careful!
โ Error 1: Condition check expression written incorrectly (leading to no execution or infinite loop)
For example, if you want to print 1-5, you write i >= 5:
// Error: Initialize i=1, check 1>=5 does not hold true, loop does not execute at all
for (int i = 1; i >= 5; i++) { cout << i;}
โ Correct: Write the condition according to the loop direction, use i <= target number for forward order, and i >= target number for reverse order.
โ Error 2: Update expression omitted or written incorrectly (leading to infinite loop)
For example, if you want to print 1-5, you omit i++:
// Error: i remains 1, check 1<=5 always holds true, loop never stops (infinite loop)
for (int i = 1; i <= 5; ) { cout << i;}
โ Correct: The update expression must match the condition, use i++ for forward order and i– for reverse order, and do not omit it.
โ Error 3: Forgetting to add brackets to the loop body (only the first line of code repeats)
For example, if you want to print numbers and “keep going”, but forget to add brackets:
// Error: Only cout << i; repeats, cout << "keep going"; executes only once
for (int i = 1; i <= 3; i++) cout << i << endl; cout << "keep going" << endl;

โ Correct: If the loop body has multiple lines of code, you must use {} to wrap the code:
for (int i = 1; i <= 3; i++) { cout << i << endl; cout << "keep going" << endl;}
6. ๐ข Next lesson preview: Combining for with cin and if (making loops more “intelligent”)
In this lesson, we learned to use the for loop to achieve “repeated execution of code”, but the current loops are all “fixed repetitions” – for example, repeating a fixed number of times, like 5 times or 10 times. If we want the loop to “decide the number of repetitions based on user input”, or “to perform actions based on conditions within the loop” (for example, “accumulating even numbers within 10”), we need to combine the for loop with cin and if that we learned earlier!
In the next lesson, we will learn:
- Combining for with cin: Allowing the user to input “number of repetitions”, executing the loop according to the input (for example, “let the user input n, print from 1 to n”);
- Combining for with if: Adding condition checks within the loop, executing only the code that meets the conditions (for example, “loop from 1 to 10, only print even numbers”).
After mastering the combinations, loops will become more “intelligent”, capable of solving problems closer to real life (for example, “counting how many of the 5 grades input by the user are passing”), looking forward to exploring together in the next lesson~๐
