if:用来做判断,根据条件决定是否执行某一次特定的代码块,它只走一次流程。while:用来做循环,根据条件决定是否重复执行某段代码,它会一直走,直到条件不再满足。
if 语句:单次判断
if 语句就像一个路口的交警,他只会看你一次,根据你是否违规来决定是否拦下你。

作用:根据一个条件的真假,选择性地执行一段代码,如果条件为真,就执行 if 下面的代码块;如果为假,就跳过它(或者执行 else 下面的代码块)。
核心特点:
- 执行一次:程序执行到
if语句时,会判断一次条件,然后就继续执行后面的代码,不会再回头。 - 分支选择:它提供的是“二选一”或“多选一”的分支结构。
语法结构:
if 条件:
# 如果条件为 True,则执行这里的代码
...
elif 另一个条件: # (可选)
# 如果前面的 if 条件为 False,且这个条件为 True,则执行这里的代码
...
else: # (可选)
# 如果所有前面的条件都为 False,则执行这里的代码
...
代码示例:

age = 18
# 程序只会判断一次 age >= 18
if age >= 18:
print("你已经成年了,可以进入。")
else:
print("你还未成年,禁止进入。")
print("检查完毕。") # 这行代码无论如何都会执行
输出:
你已经成年了,可以进入。
检查完毕。
在这个例子中,程序检查了 age 一次,然后打印出相应的信息,就继续往下走了,不会再回来重新检查 age。
while 循环:重复执行
while 循环像一个不知疲倦的跑步运动员,在跑道上一直跑,直到裁判(条件)告诉他“停!”
作用:只要一个条件保持为真,就不断地重复执行一段代码块,当条件变为假时,循环才会结束,程序才会继续执行循环后面的代码。

核心特点:
- 重复执行:只要条件满足,代码块就会被一遍又一遍地执行。
- 循环结构:它提供的是“重复做某事”的循环结构。
语法结构:
while 条件:
# 只要条件为 True,就会反复执行这里的代码
...
# 重要:在循环体内,必须有某种方式能让条件最终变为 False,否则会形成“死循环”
代码示例:
count = 0
# 程序会一次又一次地检查 count < 5
while count < 5:
print(f"当前计数是: {count}")
count = count + 1 # 关键:每次循环后,count 的值都会增加
print("循环结束。") # 只有当 count >= 5 时,这行代码才会被执行
输出:
当前计数是: 0
当前计数是: 1
当前计数是: 2
当前计数是: 3
当前计数是: 4
循环结束。
在这个例子中,程序检查了 count < 5 五次,每次打印后,count 的值都会增加,直到 count 变成 5,count < 5 这个条件变为 False,循环才停止。
核心区别对比表
| 特性 | if 语句 |
while 循环 |
|---|---|---|
| 核心功能 | 判断、分支选择 | 循环、重复执行 |
| 执行次数 | 最多一次 | 零次或多次(直到条件为假) |
| 程序流程 | 线性或分支,执行完即跳过 | 可能会“回头”,反复执行同一段代码 |
| 比喻 | 一个十字路口的红绿灯 | 一个不知疲倦的跑步运动员 |
| 语法关键词 | if, elif, else |
while |
| 是否需要改变条件 | 不需要,条件判断一次后就丢弃了。 | 必须需要,否则会导致死循环。 |
| 典型应用场景 | - 检查用户输入是否有效 - 根据分数评定等级 - 决定是否执行某个操作 |
- 遍历列表中的所有元素 - 等待用户输入特定内容 - 游戏主循环 |
一个生动的比喻:点外卖
假设你想吃火锅,但不确定哪家好吃。
使用 if 语句:
# 你打开外卖APP,看了一家评价最高的店
if这家店的评分 >= 4.5:
print("太好了,就这家了!下单!")
else:
print "评分太低了,再看看别的。"
# 无论选不选,你都只看了这一家店,然后就关掉APP了。
你只做了一次判断,然后就结束了。
使用 while 循环:
is_found = False # 设置一个标志,表示还没找到满意的店
while not is_found: # 只要还没找到,就一直看
print("正在浏览一家店...")
if 这家店的评分 >= 4.5 and 这家店有优惠券:
print("找到了!评分高还有券,就这家了!下单!")
is_found = True # 找到了,改变条件,让循环结束
else:
print("这家不满意,继续看下一家。")
# 只有找到满意的店,循环才会停止,你才会去下单。
你一直在重复“浏览-判断”这个过程,直到满足“找到满意的店”这个条件为止。
if 和 while 可以结合使用
在实际编程中,if 和 while 经常一起使用,非常常见。
场景:你想让用户输入正确的密码,如果输错了,就提示错误并让他重新输入。
password = "secret123"
user_input = ""
# while 循环用于“重复尝试”
while user_input != password:
# if 语句用于“判断单次输入是否正确”
if user_input: # 如果不是第一次输入(即 user_input 不为空字符串)
print("密码错误,请重试!")
# 在循环内部获取新的输入
user_input = input("请输入密码: ")
print("密码正确,欢迎进入!")
在这个例子中:
while循环控制着“不断尝试”这个大框架。if语句在每次循环中,判断“这次的输入是不是错误的”,如果是,就给出一个错误提示。
记住这个简单的法则:
- 当你的代码需要“做一次决定”时,使用
if。 - 当你的代码需要“反复做一件事,直到某个条件满足”时,使用
while。
