while 是编程语言中最基础的循环结构 之一,核心逻辑是:先判断条件,再执行循环体,只要条件为真,就重复执行循环体代码,直到条件为假时退出循环。
一、基本语法(以 Python 为例)
python
运行
bash
while 条件表达式:
循环体代码(缩进)
# 可选:更新条件相关的变量(避免死循环)
- 条件表达式 :返回布尔值(
True/False),可以是比较运算、逻辑运算等; - 循环体 :条件为
True时执行的代码块,必须缩进(Python 中通常 4 个空格); - 关键 :循环体内必须有能让条件最终变为
False的逻辑,否则会陷入死循环。
二、核心特点
- 先判断,后执行 :如果初始条件就为
False,循环体一次都不会执行; - 灵活控制:适合循环次数不确定的场景(比如 "直到用户输入正确为止")。
三、基础示例
示例 1:简单计数(1 到 5)
python
运行
bash
# 初始化计数器
count = 1
# 条件:count <= 5 时执行循环
while count <= 5:
print(count)
# 必须更新计数器,否则死循环
count += 1 # 等价于 count = count + 1
输出:
plaintext
1
2
3
4
5
示例 2:死循环与退出(break)
如果循环条件永远为 True,就是死循环,需用 break 主动退出:
python
运行
python
while True:
user_input = input("请输入'退出'结束程序:")
if user_input == "退出":
print("程序结束")
break # 跳出循环
print(f"你输入的是:{user_input}")
运行效果:
plaintext
arduino
请输入'退出'结束程序:hello
你输入的是:hello
请输入'退出'结束程序:退出
程序结束
四、进阶用法
1. while + continue(跳过本次循环)
continue 会跳过当前循环体剩余代码,直接回到条件判断:
python
运行
dart
# 打印1-10中的奇数
num = 0
while num < 10:
num += 1
if num % 2 == 0: # 如果是偶数
continue # 跳过本次循环的print
print(num)
输出:
plaintext
1
3
5
7
9
2. while + else(循环正常结束时执行)
else 块仅在循环不是被 break 打断,而是因条件为假正常结束时执行:
python
运行
bash
count = 1
while count <= 3:
print(count)
count += 1
else:
print("循环正常结束") # 会执行
count = 1
while count <= 3:
print(count)
if count == 2:
break
count += 1
else:
print("循环正常结束") # 不会执行(被break打断)
输出:
plaintext
1
2
3
循环正常结束
1
2
五、常见注意事项
-
避免死循环 :必须确保循环体内有能让条件最终为
False的逻辑(如计数器递增、用户输入判断等); -
缩进问题(Python):循环体必须缩进,否则会报错或逻辑错误;
-
初始值设置:计数器、判断变量的初始值要合理(比如计数从 0 还是 1 开始);
-
与 for 循环的区别:
for:适合循环次数确定的场景(如遍历列表、固定次数);while:适合循环次数不确定的场景(如直到满足某个条件)。
六、其他语言的 while 语法(简要对比)
| 语言 | 语法示例 | 核心差异 |
|---|---|---|
| Java | int i=1; while(i<=5) { System.out.println(i); i++; } |
用大括号包裹循环体,无需缩进 |
| C/C++ | int i=1; while(i<=5) { printf("%d\n", i); i++; } |
同上 |
| JavaScript | let i=1; while(i<=5) { console.log(i); i++; } |
变量声明用 let/var |
总之,while 循环的核心是 "条件驱动执行",只要掌握 "条件判断 + 循环体更新 + 退出逻辑",就能灵活解决各类循环问题。