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.
#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;
Next: i = 1. Add 1 to sum.
Guided simulation · Change the inputs to test your understanding.
How many times does for (int i = 0; i <= 4; i++) execute its body?
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.
#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
Mark complete when you can explain it yourself.