在C++中,while
循环用于重复执行代码块,直到指定条件不再满足。以下是关键点总结及示例:
基本语法
while (condition) {
// 循环体
}
- 条件检查:每次循环开始前检查条件,若为
true
则执行循环体,否则退出。 - 零次执行可能:若初始条件为
false
,循环体不会执行。
示例:打印1到5
int i = 1;
while (i <= 5) {
cout << i << endl;
i++;
}
输出:
1
2
3
4
5
避免无限循环
- 确保循环体内修改条件变量。例如,若忘记
i++
,i
永远为1,导致无限循环。
continue
与break
-
continue
:跳过当前迭代剩余代码,进入下一次循环。int i = 0; while (i < 10) { i++; if (i % 2 == 0) continue; // 跳过偶数 cout << i << endl; }
输出:
1 3 5 7 9
。 -
break
:立即退出循环。int count = 0; while (true) { cout << count << endl; if (count >= 5) break; count++; }
输出:
0 1 2 3 4 5
。
输入验证示例
int num;
cout << "输入1-10的数:";
cin >> num;
while (num < 1 || num > 10) {
cout << "无效,重新输入:";
cin >> num;
}
- 持续提示用户输入,直到输入有效值。
嵌套循环
int i = 1;
while (i <= 9) {
int j = 1;
while (j <= i) {
cout << i << "*" << j << "=" << i*j << " ";
j++;
}
cout << endl;
i++;
}
输出部分乘法表。
作用域注意事项
- 循环体内定义的变量每次迭代重新创建:
while (condition) { int temp = 5; // 每次迭代创建新temp }
与for
循环对比
for
循环适用于已知迭代次数:for (int i = 1; i <= 5; i++) { cout << i << endl; }
while
更灵活,适合未知次数(如文件读取)。
复合条件
int a = 0, b = 0;
while (a < 5 && b < 10) {
a++;
b += 2;
}
- 循环在
a >=5
或b >=10
时终止。
关键点:
- 确保条件最终变为
false
,避免无限循环。 - 合理使用
break
和continue
控制流程。 - 循环变量需在循环体内正确更新。
通过合理设计条件和变量更新,while
循环能有效处理重复任务。