C++ 提供了几种循环结构,使得代码可以重复执行一段特定的代码块。这些循环结构包括 for 循环、while 循环、do-while 循环以及基于范围的 for 循环(C++11 引入)。
1. for 循环
for 循环用于在固定次数内重复执行一段代码。
cpp复制代码
|
for (initialization; condition; update) { |
|
// code to be executed |
|
} |
· initialization:初始化表达式,在循环开始之前执行一次。
· condition:条件表达式,每次循环迭代前都会检查,如果为 true,则执行循环体,否则退出循环。
· update:更新表达式,每次循环迭代结束后执行。
2. while 循环
while 循环在条件为真时重复执行一段代码。
cpp复制代码
|
while (condition) { |
|
// code to be executed |
|
} |
· condition:条件表达式,每次循环迭代前都会检查,如果为 true,则执行循环体,否则退出循环。
3. do-while 循环
do-while 循环与 while 循环类似,但会至少执行一次循环体,因为条件检查在循环体执行后进行。
cpp复制代码
|
do { |
|
// code to be executed |
|
} while (condition); |
· condition:条件表达式,在循环体执行后检查,如果为 true,则循环继续,否则退出循环。
4. 基于范围的 for 循环(C++11)
基于范围的 for 循环用于遍历容器(如数组、向量等)中的所有元素。
cpp复制代码
|
for (declaration : container) { |
|
// code to be executed |
|
} |
· declaration:用于声明一个变量,该变量在每次迭代中都会从 container 中获取一个元素。
· container:一个可迭代的对象,例如数组、向量、列表等。
示例
下面是一个使用各种循环结构的简单示例:
cpp复制代码
|
#include <iostream> |
|
#include <vector> |
|
|
|
int main() { |
|
// 使用 for 循环打印 1 到 5 |
|
for (int i = 1; i <= 5; ++i) { |
|
std::cout << i << " "; |
|
} |
|
std::cout << std::endl; |
|
|
|
// 使用 while 循环打印 6 到 10 |
|
int j = 6; |
|
while (j <= 10) { |
|
std::cout << j << " "; |
|
++j; |
|
} |
|
std::cout << std::endl; |
|
|
|
// 使用 do-while 循环打印 11(至少执行一次) |
|
int k = 11; |
|
do { |
|
std::cout << k << " "; |
|
++k; |
|
} while (k <= 11); // 实际上这里的条件永远为 false,因为 k 在 do 块中已经被增加 |
|
std::cout << std::endl; |
|
|
|
// 使用基于范围的 for循环遍历一个vector |
|
std::vector<int> numbers = {1, 2, 3, 4, 5}; |
|
for (int num : numbers) { |
|
std::cout << num << " "; |
|
} |
|
std::cout << std::endl; |
|
|
|
return 0; |
|
} |
输出将会是:
复制代码
|
1 2 3 4 5 |
|
6 7 8 9 10 |
|
11 |
|
1 2 3 4 5 |
这些循环结构提供了灵活的方式来控制代码的执行流程,使程序能够重复执行特定的任务,直到满足特定的条件。