Foundations
Loops
Loops repeat a block while a counter changes.
for loop
A `for` loop can initialize a counter, test a condition, and update the counter after each pass.
Loops
loops.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
int main() {
int limit = 4;
int total = 0;
for (int number = 1; number <= limit; number++) {
total += number;
}
std::cout << "limit=" << limit << std::endl;
std::cout << "total=" << total << std::endl;
return 0;
}
#include <iostream>
int main() {
int limit = 2;
int total = 0;
for (int number = 1; number <= limit; number++) {
total += number;
}
std::cout << "limit=" << limit << std::endl;
std::cout << "total=" << total << std::endl;
return 0;
}
#include <iostream>
int main() {
int limit = 6;
int total = 0;
for (int number = 1; number <= limit; number++) {
total += number;
}
std::cout << "limit=" << limit << std::endl;
std::cout << "total=" << total << std::endl;
return 0;
}
limit ← 4, total ← 0
3int main() {4 int limit→ 4 = 4; //@limit=2, 65 int total→ 0 = 0;total ← 1
pass 1 of 47for (int number1 = 1; number <= limit4; number++) {8 total→ 1 += number1;9}All 4 passes — pass 1 is the card above pass numbertotal1 1 0 → 1 2 2 1 → 3 3 3 3 → 6 4 4 6 → 10 std::cout << "limit=" << limit << std::endl;
11 std::cout << "limit=" << limit4 << std::endl;12 std::cout << "total=" << total10 << std::endl;13 return 0;14}outputlimit=4 total=10
limit ← 2, total ← 0
3int main() {4 int limit→ 2 = 2;5 int total→ 0 = 0;total ← 1
pass 1 of 27for (int number1 = 1; number <= limit2; number++) {8 total→ 1 += number1;9}total ← 3
pass 2 of 27for (int number2 = 1; number <= limit2; number++) {8 total→ 3 += number2;9}std::cout << "limit=" << limit << std::endl;
11 std::cout << "limit=" << limit2 << std::endl;12 std::cout << "total=" << total3 << std::endl;13 return 0;14}outputlimit=2 total=3
limit ← 6, total ← 0
3int main() {4 int limit→ 6 = 6;5 int total→ 0 = 0;total ← 1
pass 1 of 67for (int number1 = 1; number <= limit6; number++) {8 total→ 1 += number1;9}All 6 passes — pass 1 is the card above pass numbertotal1 1 0 → 1 2 2 1 → 3 3 3 3 → 6 4 4 6 → 10 5 5 10 → 15 6 6 15 → 21 std::cout << "limit=" << limit << std::endl;
11 std::cout << "limit=" << limit6 << std::endl;12 std::cout << "total=" << total21 << std::endl;13 return 0;14}outputlimit=6 total=21
Follow the Loop
limitstarts at4.totalstarts at0.- The loop adds
1, then2, then3, then4. totalbecomes10.- The program prints
limit=4andtotal=10. | limit | numbers added | total | | --- | --- | --- | | 2 | 1, 2 | 3 | | 4 | 1, 2, 3, 4 | 10 | | 6 | 1, 2, 3, 4, 5, 6 | 21 |
Exercise: loops.cpp
Reproduce total=10 for limit 4, then try limit 2 and 6 and predict each total before running it.