语句仍在运行,即使while循环被评估为false?

时间:2018-05-26 15:42:22

标签: python

valid = False
while not valid:
   print("This line runs")
   valid = True
   print("This line also runs...")

在while循环的中途,valid设置为True,这意味着while循环条件现在为false。我的问题是为什么最后一个打印语句会运行?那时while循环不是假的,所以它不应该突破循环吗?

2 个答案:

答案 0 :(得分:4)

在每个循环开始时检查循环条件。如果它通过,则执行正文中的所有内容(并再次检查条件)。如果你想退出循环体的中间,请使用' break'言。

答案 1 :(得分:1)

尝试添加break语句以获得所需的结果,以及if语句:

valid = False
while not valid:
    print("This line runs")
    valid = True
    if valid == True:
        break
    print("This line also runs...")

在上面的代码中,我们有一个条件语句,如果它的计算结果为True,我们将跳出循环。在此之前,您没有条件要检查循环,因此循环迭代一次,然后实际捕获该有效值为无。为了立即打破你的代码,你需要一个像我上面给你看到的中断声明。