3.2 for 循环与计数
当循环次数比较明确时,for 循环通常比 while 更简洁。它把初始化、条件和更新写在同一行。
for 的基本结构
C++ 的 for 循环写作 for (init; condition; update)。每轮开始前检查条件,循环体执行后再执行更新。
cpp
for (int i = 0; i < 5; i++) {
std::cout << i << " ";
}
std::cout << std::endl;
for (int i = 10; i < 15; i++) {
std::cout << i << " ";
}
std::cout << std::endl;
for (int i = 1; i < 10; i += 2) {
std::cout << i << " ";
}
std::cout << std::endl;输出:
text
0 1 2 3 4
10 11 12 13 14
1 3 5 7 9for (int i = start; i < stop; i += step) 表示从 start 开始,每次增加 step,在到达 stop 之前停止。也就是说,stop 是“到这里停止”的边界,不一定是最后输出的值。
正在加载概念检查...
固定次数计数
要计算从 1 到 100 的整数和,可以让循环变量从 1 走到 100。
cpp
int total = 0;
for (int i = 1; i <= 100; i++) {
total += i;
}
std::cout << "Sum of 1 to 100: " << total << std::endl;输出:
text
Sum of 1 to 100: 5050和 while 相比,这种写法更容易看出循环变量 i 的范围。
正在加载交互实验...
正在加载概念检查...
斐波那契数列
斐波那契数列的前两项是 1, 1。从第三项开始,每一项等于前两项之和。
cpp
int n;
std::cin >> n;
if (n <= 0) {
std::cout << "Enter a positive integer." << std::endl;
} else if (n == 1) {
std::cout << 1 << std::endl;
} else {
int first = 1, second = 1;
std::cout << first << " " << second << " ";
for (int i = 3; i <= n; i++) {
int current = first + second;
std::cout << current << " ";
first = second;
second = current;
}
std::cout << std::endl;
}一次可能的运行:
text
10
1 1 2 3 5 8 13 21 34 55循环中最关键的更新是这两行:
cpp
first = second;
second = current;它们会把“前两项”的窗口向后移动一格,这样下一轮就能继续使用最新的前两项。
正在加载概念检查...
正在加载本节练习...