目录
一. while循环语句
1.1 语法如下:
while (condition) {
// 循环体:当condition为true时执行的代码
}
condition是一个布尔表达式,每次循环开始前都会检查其值。只要condition为true,循环体就会继续执行;一旦condition变为false,循环终止。
1.2 while循环的执行流程
- 判断condition的真值。
- 如果condition为true,执行循环体中的代码。
- 循环体执行完毕后,再次评估condition的值。
- 重复上述步骤,直到condition为false为止。
【注】如果在第一次评估时condition就是false,循环体将一次也不执行。
1.3 简单的while循环示例
1.3.1 展示如何使用while循环打印数字1到5:
#include <iostream>
using namespace std;
int main() {
int i = 1;
while (i <= 5) {
cout << i << " ";
i++;
}
return 0;
}
输出结果为:
1 2 3 4 5
1.3.2 while循环的常见应用场景
while循环特别适合处理以下情况:
- 不确定循环次数的任务
- 需要根据用户输入决定循环是否继续的情况
- 读取文件或网络数据直到结束
- 实现游戏循环或事件循环
二. 应用案例
2.1 案例一:用户输入验证
以下代码展示了如何使用while循环来确保用户输入有效的数字:
#include <iostream>
using namespace std;
int main() {
int number;
cout << "请输入一个1到100之间的数字: ";
cin >> number;
while (number < 1 || number > 100) {
cout << "输入无效,请重新输入: ";
cin >> number;
}
cout << "你输入的有效数字是: " << number << endl;
return 0;
}
2.2 案例2:计算数字位数
这个例子展示如何使用while循环计算一个整数的位数:
#include <iostream>
using namespace std;
int main() {
int num, count = 0;
cout << "请输入一个整数: ";
cin >> num;
// 处理0的特殊情况
if (num == 0) {
count = 1;
} else {
// 处理负数
if (num < 0) num = -num;
while (num > 0) {
num /= 10;
count++;
}
}
cout << "这个数字有 " << count << " 位" << endl;
return 0;
}
2.3 实用技巧
无限循环及如何避免
如果while循环的condition始终为true,会导致无限循环。例如:
while (true) {
// 无限循环
}
要避免无限循环,确保:
- 循环条件最终会变为false
- 在循环体内有修改条件变量的语句
- 可以使用break语句在特定条件下退出循环
三. while循环与for循环的比较
3.1 while循环和for循环可以互相转换,但各有适用场景:
- while循环更适合条件不确定的情况
- for循环更适合已知迭代次数的情况
例如,前面的数字打印例子可以用for循环重写:
for (int i = 1; i <= 5; i++) {
cout << i << " ";
}
注意事项
- 确保循环条件最终会变为false,否则会导致无限循环
- 注意循环变量的初始化位置
- 循环体内应有改变循环条件的语句
- 对于复杂的条件,可以使用括号明确优先级
- 可以使用break和continue控制循环流程,但要谨慎使用