循环中的 else

whilefor‑in 循环末尾可以搭配 else:

else 代码块,只有循环正常遍历结束,没有被 break 打断的时候才会执行
如果循环执行中遇到 break 提前退出,else 里面的代码不会运行

一句话概括:

else 在循环完整跑完最后一次之后执行;只要中途 break,else 就跳过。


1:循环被 break,else 不执行

for i in ("a", "b", "c", "d"):
    if i == "b":
        break
    print(i)
else:
    print("完满结束")Code language: PHP (php)

输出:

a

遇到 i==”b” 执行 break,循环中途终止 → else 块不执行,不会打印“完满结束”。


2:没有触发 break,else 执行

# 集合里面包含 yogurt,触发 break,else 不跑
for food in ("pate", "cheese", "crackers", "yogurt"):
    if food == "yogurt":
        break
else:
    print("There is no yogurt!")

# 集合没有 yogurt,循环完整跑完,else 执行
for food in ("pate", "cheese", "crackers"):
    if food == "yogurt":
        break
else:
    print("There is no yogurt!")Code language: PHP (php)

输出:

There is no yogurt!

例子

常用于查找判断:遍历找某个目标,如果从头到尾找完都没找到(没有break),就进入else执行“未找到”逻辑。

nums = [10,20,30]
for n in nums:
    if n == 99:
        print("找到了99")
        break
else:
    print("列表里没有99")Code language: PHP (php)

输出:列表里没有99

注意:continue 不会影响 else,只有 break 才会阻止 else 运行。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注