2

我无法完全理解为什么会这样:

while True:
     age = int(raw_input("What is your age? "))
     if age >= 21:
         print "Okay! You are old enough to drink."
         break
     else:
         print "Bzzt! You are not old enough to drink."

有效,但这不起作用:

while False:
     age = int(raw_input("What is your age? "))
     if age >= 21:
         print "Okay! You are old enough to drink."
         break
     else:
         print "Bzzt! You are not old enough to drink."

第二个甚至没有执行。我的主要问题是了解计算机如何读取它以及它正在检查的值。如果这看起来很基本,我很抱歉。我一直在自学 Python,但出现了这个问题,我找不到足够的解释。

提前致谢。

4

2 回答 2

12

那是因为这就是while循环的工作方式。While 循环在其条件为True(或至少评估为True)时继续。如果是False(或评估为False),它们就会中断。此外,每次迭代都会重新评估条件。

考虑到这一点,从False条件开始自然意味着它永远不会执行。

此外,这种行为并不是 Python 独有的。所有的while循环都是这样工作的。它们可以理解为“当这个条件为真时,执行这个代码块”。

也许您正在考虑一个 do-while-loop,它运行一个代码块然后评估条件。但是,Python 没有 do-while-loop。

于 2013-10-08T21:43:00.707 回答
0

如果条件为假,程序甚至不会进入循环

于 2013-10-08T21:49:25.453 回答