C++ 循环控制
外观
C++循环控制[编辑 | 编辑源代码]
循环控制是C++编程中用于重复执行代码块的核心结构,它允许开发者高效处理重复性任务。本章节将详细介绍C++中的三种主要循环结构:for循环、while循环和do-while循环,以及控制循环执行的break和continue语句。
循环类型[编辑 | 编辑源代码]
for循环[编辑 | 编辑源代码]
for循环是当迭代次数已知时的首选结构,其语法包含初始化、条件和迭代三部分:
// 打印数字1到5
for (int i = 1; i <= 5; i++) {
std::cout << i << " ";
}
// 输出:1 2 3 4 5
执行流程:
while循环[编辑 | 编辑源代码]
当循环次数未知但终止条件明确时使用:
// 计算数字位数
int num = 1234, digits = 0;
while (num != 0) {
num /= 10;
digits++;
}
std::cout << digits; // 输出:4
do-while循环[编辑 | 编辑源代码]
至少执行一次循环体,适合必须先执行后判断的场景:
// 用户输入验证
int input;
do {
std::cout << "输入1-100间的数字: ";
std::cin >> input;
} while (input < 1 || input > 100);
循环控制语句[编辑 | 编辑源代码]
语句 | 作用 | 示例 |
---|---|---|
break |
立即终止当前循环 | 在找到目标值时退出搜索循环 |
continue |
跳过当前迭代 | 跳过偶数处理奇数 |
// 查找第一个3的倍数
for (int i = 1; i <= 10; i++) {
if (i % 3 == 0) {
std::cout << "找到: " << i;
break; // 终止循环
}
}
嵌套循环[编辑 | 编辑源代码]
循环可以多层嵌套,常用于处理多维数据结构:
// 打印乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
std::cout << j << "×" << i << "=" << i*j << "\t";
}
std::cout << "\n";
}
性能优化[编辑 | 编辑源代码]
考虑以下数学级数求和优化对比:
// 低效实现 O(n)
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
// 高效实现 O(1)
int sum = n * (n + 1) / 2;
实际应用案例[编辑 | 编辑源代码]
游戏开发中的主循环是典型应用:
bool gameRunning = true;
while (gameRunning) {
processInput();
updateGameState();
renderGraphics();
if (playerHealth <= 0) {
gameRunning = false;
}
}
常见错误[编辑 | 编辑源代码]
- 无限循环:忘记更新循环变量
// 错误示例
while (true) {
std::cout << "无限循环!";
// 缺少终止条件
}
- 作用域问题:循环变量在外部不可访问
for (int i = 0; i < 10; i++) { /*...*/ }
std::cout << i; // 错误!i未定义
最佳实践[编辑 | 编辑源代码]
1. 优先选择最能表达意图的循环结构
2. 避免超过3层的嵌套循环
3. 对性能敏感代码考虑循环展开
4. 使用constexpr
在编译期计算已知循环
通过掌握这些循环控制技术,您将能够处理C++中绝大多数需要重复执行的场景。