在计算机编程中,循环用于重复执行一段代码。
例如,假设我们想显示一条消息 100 次。那么,与其写 100 次打印语句,不如使用循环。
这只是一个简单的例子;通过有效地利用循环,我们可以在程序中实现更高的效率和复杂性。
C++ 中有 3 种类型的循环。
for
循环while
循环do...while
循环
本教程重点介绍 C++ for
循环。我们将在接下来的教程中学习其他类型的循环。
C++ for 循环
for 循环的语法是
for (initialization; condition; update) {
// body of-loop
}
这里,
初始化
- 初始化变量,仅执行一次条件
- 如果为true
,则执行for
循环的循环体
如果为false
,则终止 for 循环更新
- 更新已初始化变量的值,并再次检查条件
要了解更多关于 条件
的信息,请查看我们关于 C++ 关系运算符和逻辑运算符 的教程。
C++ for 循环流程图

示例 1:打印数字 1 到 5
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 5; ++i) {
cout << i << " ";
}
return 0;
}
输出
1 2 3 4 5
这个程序的工作原理如下:
迭代 | 变量 | i | 操作 |
---|---|---|---|
第 1 次 | i = 1 |
true |
打印 1。i 增加到 2 。 |
第 2 次 | i = 2 |
true |
打印 2。i 增加到 3 。 |
第 3 次 | i = 3 |
true |
打印 3。i 增加到 4 。 |
第 4 次 | i = 4 |
true |
打印 4。i 增加到 5 。 |
第 5 个 | i = 5 |
true |
打印 5。i 增加到 6 。 |
第 6 个 | i = 6 |
false |
循环终止 |
示例 2:显示文本 5 次
// C++ Program to display a text 5 times
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 5; ++i) {
cout << "Hello World! " << endl;
}
return 0;
}
输出
Hello World! Hello World! Hello World! Hello World! Hello World!
这个程序的工作原理如下:
迭代 | 变量 | i | 操作 |
---|---|---|---|
第 1 次 | i = 1 |
true |
打印 Hello World!,i 增加到 2 。 |
第 2 次 | i = 2 |
true |
打印 Hello World!,i 增加到 3 。 |
第 3 次 | i = 3 |
true |
打印 Hello World!,i 增加到 4 。 |
第 4 次 | i = 4 |
true |
打印 Hello World!,i 增加到 5 。 |
第 5 个 | i = 5 |
true |
打印 Hello World!,i 增加到 6 。 |
第 6 个 | i = 6 |
false |
循环终止 |
示例 3:查找前 n 个自然数的和
// C++ program to find the sum of first n natural numbers
// positive integers such as 1,2,3,...n are known as natural numbers
#include <iostream>
using namespace std;
int main() {
int num, sum;
sum = 0;
cout << "Enter a positive integer: ";
cin >> num;
for (int i = 1; i <= num; ++i) {
sum += i;
}
cout << "Sum = " << sum << endl;
return 0;
}
输出
Enter a positive integer: 10 Sum = 55
在上面的示例中,我们有两个变量 num 和 sum。sum 变量被赋值为 0,num 变量被赋值为用户提供的值。
请注意,我们使用了 for
循环。
for(int i = 1; i <= num; ++i)
这里,
int i = 1
:初始化 i 变量i <= num
:只要 i 小于或等于 num,循环就继续执行++i
:每次迭代将 i 变量增加 1
当 i 变为 11
时,条件
为 false
,sum 将等于 0 + 1 + 2 + ... + 10
。
基于范围的 For 循环
在 C++11 中,引入了一种新的基于范围的 for
循环,用于处理 数组 和 向量 等集合。其语法为
for (variable : collection) {
// body of loop
}
在这里,对于 collection 中的每个值,for 循环都会执行,并将该值赋给 variable。
示例 4:基于范围的 For 循环
#include <iostream>
using namespace std;
int main() {
int num_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (int n : num_array) {
cout << n << " ";
}
return 0;
}
输出
1 2 3 4 5 6 7 8 9 10
在上面的程序中,我们声明并初始化了一个名为 num_array 的 int
数组。它有 10 个元素。
在这里,我们使用了一个基于范围的 for
循环来访问数组中的所有元素。
C++ 无限 for 循环
如果 for
循环中的 condition
始终为 true
,它将永远运行(直到内存已满)。例如,
// infinite for loop
for(int i = 1; i > 0; i++) {
// block of code
}
在上面的程序中,condition
始终为 true
,然后将无限次地运行代码。
另请阅读