📚 什么是while循环?
while循环的作用
while循环让代码在条件为真时重复执行,适合不确定循环次数的场景。
✅ 实现重复执行
✅ 条件为真时继续循环
✅ 适合不确定次数 的循环
⚠️ 注意避免死循环
基本语法结构
#include <iostream>
using namespace std;
int main () {
int i = 1 ;
while (i <= 5 ) {
cout << "第" << i << "次循环" << endl;
i++;
}
cout << "循环结束" << endl;
return 0 ;
}
💡 语法要点:
• while 后面跟着圆括号和条件
• 条件为真(true)时执行循环体
• 循环体内必须更新循环变量
• 否则会导致死循环!
⚙️ 循环的执行流程
while循环的工作原理
#include <iostream>
using namespace std;
int main () {
int count = 0 ;
cout << "开始循环..." << endl;
while (count < 3 ) {
cout << "循环次数:" << count << endl;
count++;
}
cout << "循环结束,count = " << count << endl;
return 0 ;
}
💡 执行步骤:
1. 检查条件(count < 3)
2. 如果为真,执行循环体
3. 执行count++
4. 回到步骤1重新检查条件
5. 如果为假,跳出循环
🎮 互动实验:循环模拟器
设置循环次数,观察while循环的执行过程
循环次数:
模拟执行
输入循环次数后点击"模拟执行"...
🛠️ 常见应用场景
累加求和
#include <iostream>
using namespace std;
int main () {
int n, sum = 0 , i = 1 ;
cout << "请输入n:" ;
cin >> n;
while (i <= n) {
sum += i;
i++;
}
cout << "1到" << n << "的和为:" << sum << endl;
return 0 ;
}
用户输入验证
#include <iostream>
using namespace std;
int main () {
int score;
cout << "请输入成绩(0-100):" ;
cin >> score;
while (score < 0 || score > 100 ) {
cout << "输入无效!请重新输入:" ;
cin >> score;
}
cout << "有效成绩:" << score << endl;
return 0 ;
}
💡 应用技巧:
• 用于数据验证 ,确保输入合法
• 用于重试机制 ,直到成功为止
• 用于游戏循环 ,直到游戏结束
• 用于文件读取 ,直到文件末尾
🎯 累加计算器
输入数字n,计算1到n的累加和
n =
计算
输入数字后点击"计算"...
🚀 避免死循环
死循环示例与解决
#include <iostream>
using namespace std;
int main () {
int i = 1 ;
while (i <= 5 ) {
cout << i << endl;
i++;
}
int j = 10 ;
while (j > 0 ) {
cout << j << " " ;
j--;
}
cout << endl;
return 0 ;
}
⚠️ 死循环的原因:
• 忘记更新循环变量
• 更新方向错误(应该递增却递减)
• 条件永远为真(如 while(true))
• 浮点数精度问题导致条件不满足
✅ 预防措施:
• 确保循环变量会改变
• 检查更新方向是否正确
• 设置最大循环次数作为保护
break和continue在while中
#include <iostream>
using namespace std;
int main () {
int i = 0 ;
cout << "使用break提前退出:" << endl;
while (i < 10 ) {
i++;
if (i == 5 ) {
break ;
}
cout << i << " " ;
}
cout << endl;
i = 0 ;
cout << "\n使用continue跳过本次:" << endl;
while (i < 10 ) {
i++;
if (i % 2 == 0 ) {
continue ;
}
cout << i << " " ;
}
cout << endl;
return 0 ;
}
📝 实战练习
📝 小练习:循环理解
以下代码的输出是什么?
#include <iostream>
using namespace std;
int main () {
int i = 1 ;
while (i <= 3 ) {
cout << i << " " ;
i += 2 ;
}
return 0 ;
}
A. 1 2 3
B. 1 3
C. 1 3 5
D. 死循环
选择答案查看解析...
💻 编程挑战
题目: 使用while循环计算n的阶乘(n! = 1×2×3×...×n)。
n =
生成代码
输入数字后点击"生成代码"...