`while` 语句是一种 在满足特定条件的情况下重复执行一段代码的循环结构。它的基本形式是 `while (条件表达式) { 循环体语句 }`。当条件表达式为真(非0)时,执行循环体语句,然后继续下一次条件判断;如果条件表达式为假(0),则结束循环。`while` 循环的特点是先判断条件,然后执行循环体,因此也被称为 当型循环。
计数迭代:
用于执行一定次数的迭代操作,例如遍历列表、数组或执行计数任务。通过在循环体内更新计数器,并在条件表达式中检查计数器的值,可以控制循环的次数。
条件查询:
在需要根据特定条件查询或处理数据时,`while` 循环非常适用。例如,在数据库查询或文件读取时,经常需要遍历查询结果或文件内容,直到达到末尾或满足某个退出条件。
菜单或交互程序:
在设计用户菜单选择或交互式程序时,通常需要反复显示菜单并获取用户的输入,直到用户选择退出。`while` 循环可以方便地实现这种逻辑,通过设置一个布尔表达式来检查用户是否要求退出。
算法实现:
许多算法,如搜索算法、排序算法等,都需要根据特定条件执行多次迭代。在不知道具体迭代次数的情况下,`while` 循环提供了一种灵活的方式来实现这些算法。
无限循环:
有时候需要让程序一直运行,例如做个简单的计算器或等待用户输入“退出”指令。`while True` 可以实现无限循环,配合 `break` 语句来结束循环。
示例
示例 1:计算平均值
```python
data = [10, 20, 30, 40, 50]
total = sum(data)
average = total / len(data)
print(f"Average: {average}")
```
示例 2:等待用户输入“退出”
```python
prompt = "请输入一些文字(输入'exit'退出):"
while True:
text = input(prompt)
if text == "exit":
break
print(f"你输入了: {text}")
```
示例 3:计算两个非负整数的最大公约数
```c
include
int main() {
int u, v, temp;
printf("请输入两个非负整数:\n");
scanf("%d %d", &u, &v);
while (v != 0) {
temp = u % v;
u = v;
v = temp;
}
printf("最大公约数是:%d\n", u);
return 0;
}
```
通过这些示例,可以看到 `while` 循环在不同场景下的应用,它能够根据条件重复执行代码,直到条件不满足为止。