Learning pathOriginal reference
Lesson 6 of 12

For loops: make repetition precise

Trace initialization, condition, body, and update—and avoid an extra iteration.

Follow the execution order

A for loop executes initialization once, then repeats condition → body → update. The condition is checked before each possible iteration. A loop printing 1, 2, 3 checks the condition once more at 4, but never prints 4.

The update does not happen before the first body execution. Trace the counter and any accumulator separately: one says where you are, the other remembers work already done.

C++23
#include <iostream>

int main() {
    for (int i = 1; i <= 3; i++) {
        std::cout << i << '\n';
    }
    return 0;
}

Two ways to repeat n times

Starting at 1 and continuing while i <= n visits 1 through n. Starting at 0 and continuing while i < n visits 0 through n − 1. Both execute n times for a nonnegative n, but the actual counter values differ.

With n = 0, both bodies execute zero times. Starting at 0 with i <= n gives n + 1 repetitions. Write the first, last, and stopping counter values before choosing your condition.

Direction, step, and scope

For a countdown, start at n, test i >= 1, and decrement. For positive even values, start at 2 and increase by 2. Make sure the update moves toward stopping and that its final value still fits the counter type.

A counter declared in the for initializer exists in that loop, not after it. Declare a total outside the loop if it must survive between iterations. Declaring total = 0 inside the body would reset it every time.

Loop tracer

Trace: for (int i = 1; i <= n; ++i) sum += i;

10
21
32
43
54
Iterations0 / 5
sum0

Next: i = 1. Add 1 to sum.

Guided simulation · Change the inputs to test your understanding.

Pause & predict

How many times does for (int i = 0; i <= 4; i++) execute its body?

Choose an answer
Try it yourself

Turn the idea into code

For 0 ≤ n ≤ 10⁶, print the sum of the positive even integers no greater than n. For n = 7, print 12.

Give me a hint

Visit 2, 4, 6, … and use a long long total initialized before the loop.

Show the explained solution

Each iteration adds the next positive even value exactly once. For n < 2, no additions happen, so the answer remains zero.

C++23
#include <iostream>

int main() {
    int n = 0;
    std::cin >> n;
    long long sum = 0;
    for (int i = 2; i <= n; i += 2) {
        sum += i;
    }
    std::cout << sum << '\n';
    return 0;
}

Your notes

Ready for the next idea?

Mark complete when you can explain it yourself.

From a problem to a programIdentify the input, output, and constraints, then translate a small plan into C++.Variables, types, and remembered valuesChoose a representation, initialize it, and understand what assignment really changes.Arithmetic without surprisesPredict division and remainder, widen before multiplication, and format decimal answers.Conditions and logical decisionsBuild exclusive categories, combine comparisons, and protect operations with short-circuit logic.Optional: other ways to chooseRecognize switch for exact choices and the conditional operator for choosing a value.For loops: make repetition preciseTrace initialization, condition, body, and update—and avoid an extra iteration.While, do-while, and stopping rulesChoose a loop from its stopping condition and read the exact input format.Break, continue, and early answersDistinguish leaving a loop from skipping one iteration, without losing required input.Five patterns worth understandingUse sums, counts, best-so-far candidates, products, and flags to process a stream.Nested loops: rows and columnsTranslate a shape into two loop roles and count the total work.Take a number apart, one digit at a timeUse remainder and division to process decimal digits, including zero.Multiple cases and a debugging mindsetCombine the patterns, isolate each case, and test the boundaries that can break your idea.Arrays: give every value a placeUnderstand indices, initialization, capacity, active length, and the first safe array loop.Scan, count, search, and compareDistinguish values from positions and preserve the exact tie rule a problem asks for.Change a sequence without losing itUpdate, copy, compare, reverse, and inspect neighbours using the correct bounds.Matrices: think in two coordinatesTraverse tables, total rows and columns, inspect diagonals, and protect grid neighbours.Characters become stringsSeparate characters from numbers, then safely inspect and edit managed text.Read the text the problem actually givesChoose words or full lines, preserve empty cases, and reset only the state that needs it.Scan text: count, filter, transformBuild a result from matching characters without losing leading zeros or skipping shifted text.Join, compare, and find textLearn content comparison, lexicographical order, substring counts, and the not-found sentinel.