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."

2番目のものは実行さえしません。私の主な問題は、コンピューターがこれをどのように読み取っているか、およびチェックしている値を理解することです。これが非常に基本的なようでしたら申し訳ありません。私は独学で 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

条件が False の場合、プログラムはループに入ることさえしません

于 2013-10-08T21:49:25.453 に答える