目录
🔥 循环核心价值
编程本质:让代码拥有重复执行的超能力!
学习目标:
✅ 掌握5种循环结构写法
✅ 理解循环控制关键字
✅ 避开常见循环陷阱
📌 1. for循环(精确控制)
场景:已知循环次数或需要索引值
for(初始化; 条件; 迭代语句){
// 循环体
}
实战示例:
for(int i=0; i<10; ++i){
cout << i << " "; // 输出0-9
}
流程图:
初始化
↓
┌─→ 条件判断 → false─→结束
│ ↓true
│ 执行循环体
│ ↓
└── 迭代操作
🔄 2. while循环(条件驱动)
场景:不确定循环次数,但明确终止条件
while(条件){
// 循环体
}
经典案例:
int num = 5;
while(num > 0){
cout << num-- << " "; // 输出5 4 3 2 1
}
危险警告:
// 死循环!缺少迭代语句
int i = 0;
while(i < 5){
cout << "无限循环警告!";
}
🔃 3. do-while循环(先斩后奏)
特点:至少执行一次循环体
do{
// 循环体
}while(条件);
实用场景:
char input;
do{
cout << "输入Y继续:";
cin >> input;
}while(input != 'Y' && input != 'y');
🌟 4. 范围for循环(C++11黑科技)
场景:遍历容器/数组
for(元素类型 变量名 : 容器){
// 循环体
}
高阶用法:
vector<int> nums{1,2,3};
// 只读访问
for(auto num : nums){
cout << num;
}
// 修改元素(必须用引用)
for(auto& num : nums){
num *= 2;
}
🧩 5. 嵌套循环(多维操作)
场景:处理二维数据/多重条件
// 打印99乘法表
for(int i=1; i<=9; ++i){
for(int j=1; j<=i; ++j){
cout << j << "×" << i << "=" << i*j << "\t";
}
cout << endl;
}
性能警告:
// O(n²)复杂度!谨慎使用
for(int i=0; i<100000; ++i){
for(int j=0; j<100000; ++j){
// 危险操作!
}
}
🚨 循环控制三剑客
关键字 | 作用 | 示例 |
---|---|---|
break | 立即终止当前循环 | if(error) break; |
continue | 跳过本次循环剩余代码 | if(num%2==0) continue; |
goto | 跳转到标签位置(慎用) | goto exit; ... exit: ; |
💡 5大核心技巧
-
循环变量作用域:
for(int i=0; ...) // i只在循环内有效 while(...){ int x; ... } // x每次循环重新创建
-
避免浮点数循环:
// 错误示范! for(double d=0; d!=1.0; d+=0.1) // 可能无限循环
-
优化迭代器访问:
// 预先获取end() for(auto it=vec.begin(), end=vec.end(); it!=end; ++it)
-
循环控制变量:
// unsigned陷阱! for(unsigned i=5; i>=0; --i) // 永远i>=0!
-
现代C++最佳实践:
// 优先使用范围for循环 for(const auto& item : container)
🚀 终极选择指南
已知循环次数 → for循环 条件先验判断 → while循环 至少执行一次 → do-while 遍历容器 → 范围for循环 复杂逻辑 → 嵌套循环+控制语句
赶紧收藏,成为循环控制大师! 🏆