首页 > 解决方案 > break 运算符是否将 while 循环条件从 True 变为 False?

问题描述

在 Python 中查看这个非常基本的 while 循环:

while True:
    response = input("Say something: ")
    if response == 'bye':
        break
    if response != 'bye':
        continue    

此脚本提示用户输入。如果用户想打个招呼(或者几乎任何事情),循环将不断提示用户新的响应,直到用户最终输入:“再见”。如果答案是“再见”,则循环中断。

我对你们所有人的百万美元问题:对于一般的 while 循环而言,是否可以安全地说该break语句将 while 条件从True变为False,从而退出循环?

我意识到第 5 行和第 6 行确实没有必要,因为即使没有它们,循环也会像我上面描述的那样继续执行。我添加了语句来演示(将 while 条件变为 False)和“继续”(允许 while 条件保持为 True)continue之间的区别。break

如果我需要回顾这个问题的来源或出处,我从 Andrei Neagoie 的 Udemy 课程内容“2019 年完成 Python 开发人员”(第 4 节:第 71 讲:“While Loops 2”)中得到了这个想法。

标签: python

解决方案


break不会改变任何变量中的值,但它只是结束循环。您可以通过使用另一个变量来控制循环,如下所示:

other_variable = "whatever"
while other_variable == "whatever":
    response = input("Say something: ")
    if response == 'bye':
        break
    if response != 'bye':
        continue 
print(other_variable)

推荐阅读