while 循环
约 1471 字大约 5 分钟
2025-04-04
while循环的基本结构:
- while 循环基本结构
- break 语句
- continue 语句
- 条件控制循环
- 1先写一个 while True + break 的菜单循环,再改成 while flag 受变量控制,体会两种写法。
- 2在循环里 continue 和 break 后各放一行 print,确认 print 永远不会被执行。
- 3写一段 while-else,先让条件自然为假退出(else 触发),再加 break 让其退出(else 不触发)。
- 4故意忘记给计数器自增,体会“死循环不退出”是怎样的体验 —— 用 Ctrl+C 救自己。
- 5对照 while 和 for:能用 for 写就别写 while,仅在“循环次数未知、按条件退出”时才选 while。
while 循环基本结构
while循环的基本结构:
while 条件:
缩进 循环体典型 while 循环示例:
python playground
print(1111)
while True: # 死循环
print("坚强")
print("过火")
print("鸡你太美")
print("大碗宽面")
print(333)上面的例子中,第一步,先打印 1111。第二步,进入 while 语句,判断 while 后的条件是否为真。while 后的语句是 True,为真,进入循环体中。第三步,打印 坚强。第四五六步分别打印出 过火、鸡你太美 和 大碗宽面。循环体中的内容运行完毕,程序又返回到 while 语句。第七步,继续判断 while 后的条件是否为真。然后继续进入循环体,重新打印内容。随后又返回到 while 语句中。因为 while 语句后面的条件一直都是 True,故而循环往复,永不停息,成为了死循环。最后一条的 333 永远也打印不出来
break 语句
很显然,这样的死循环并不能满足我们日常编程的需要。如果能有办法限制循环次数,将会十分实用。在这里,我们可以引入 break 语句。break 可以终止当前循环。结合 if 条件语句,可以把死循环转换成有限的循环。例如:
python playground
# 循环5次
count = 0
while True: # 死循环
count = count + 1 # 先执行 = 右边的内容
if count == 5:
print(count)
break # 有限循环在这个例子中,我们先定义了一个变量 count 用来计数,也称为 计数器。每一次循环,count 就会增加 1。当 count 等于 5 时,if 语句的条件成立,打印出当前 count 的数值,运行 break,退出循环。我们就成功把死循环转换成了有限循环
continue 语句
除了 break,while 循环中还有一个很重要的语句 continue。continue 语句的意思是跳出本次循环,继续下次循环。用通俗的话来讲,continue 就是伪装成循环体中最后一行代码。例如:
python playground
count = 0
while True: # 死循环
count = count + 1 # 先执行 = 右边的内容
if count == 5:
print(111)
continue # continue 就是伪装成循环体中最后一行代码
print(count)很显然,这还是一个死循环。只不过当计数器 count 等于 5 的时候,会打印一次 111,并且这次的 count,也就是 5,不会被打印出来。
条件控制循环
除了通过使用 break 关键字来终止循环,我们还可以通过 while 后面的条件来控制循环次数:
python playground
count = 0
while count < 2:
print(count)
count = count + 1在上面的例子中,最开始计数器 count 的值为 0。然后运行到 while 条件,count < 2 是成立的,于是进入循环体。首先把 count 的内容 0 打印出来,然后 count 增加 1,进入下一次循环。第二次循环也一样,打印 1 之后,count 变成了 2,再回到 while 判断语句。此时,count < 2 不成立,循环终止。
while else 语句
while 语句也有判断的行为,所以也可以配合 else 语句使用。while-else 结构和 if-else 结构很相似。只有当 while 后判断的条件不成立时,才会执行 else 中的语句。如果循环中没有 break,else 语句中的内容将在循环结束后执行;如果循环中有 break,else 语句中的内容有可能不被执行。观察下面两个例子:
python playground
print(222)
count = 0
while count < 3:
print(count)
count = count + 1
else:
print(111)
# 运行结果: 222 0 1 2 111
print(222)
count = 0
while count < 3:
print(count)
count = count + 1
break
else:
print(111)
# 运行结果: 222 0在第一个例子中,经过三次循环后,计数器 count 的值将增加到 3。此时,条件 count < 3 不再满足,跳出循环,执行 else 语句,打印出 111 来。而第二个例子中,在第一次循环中就遇到了 break,循环被强行终止,并没有再次判断 count < 3,于是就不会进入到 else 中,111 便打印不出来。
小结
while循环基本结构:
while 条件: 缩进 循环体break:终止当前循环continue:跳出本次循环,继续下次循环(就是伪装成循环体中最后一行代码)continue和break下方的代码都不会执行while循环可以通过条件控制循环的次数while语句可以和else语句配合使用,当while后的条件不满足时,将会运行else中的语句
- while 适合“次数未知、按条件退出”的场景;遍历容器或固定次数请用 for。
- break 直接跳出当前循环,continue 提前进入下一次迭代,两者后面的代码都不会执行。
- else 子句只在“循环自然结束”时执行;用 break 中断就不进 else,这是 Python 的一个冷门特性。
- 写死循环 while True 时务必确保有出口(break / return / 异常),否则只能 Ctrl+C。
版权所有
版权归属:Shuo Liu
