Python是否会执行While循环,即使条件未满足?
Python是否会执行While循环,即使条件未满足?
这个问题已经在这里得到了回答:
我正在创建一个汽车游戏。
只有\"开始\"、\"停止\"、\"退出\"命令。
任何其他命令都无法识别。
command = "" while command != "quit": command = input("Command: ") if command == "start": print("Car ready to go") elif command == "stop": print("Car stopped") else: print("I don't understand that") else: print("Game exited")
所有命令都能正常工作,除了\"退出\"。使用while循环时,它会导致两个else语句都被执行,打印:
I don't understand that Game exited
命令=\"退出\"应该使while条件False
,从而跳过执行外部else语句。为什么它会执行两个else语句,即使while条件未得到满足?
admin 更改状态以发布 2023年5月23日
while command != "quit": command = input("Command: ") if command == "start": print("Car ready to go") elif command == "stop": print("Car stopped") else: print("I don't understand that") else: print("Game exited")
看看你的代码,当输入为"quit"时,执行第一个if语句,如果不成立,则执行下一个elif语句,如果还是不成立,则执行else语句,打印“车停止”,然后执行下一个while语句,直到循环结束并跳到“我不懂那个”的语句。
把代码改成这样:
while command != "quit": command = input("Command: ") if command == "start": print("Car ready to go") elif command == "stop": print("Car stopped") elif command != "quit": print("I don't understand that") else: print("Game exited")
while-else
的工作方式如下:如果while
条件不满足,则执行else
部分。
因此,当您在程序中键入"quit"时,if command == "start":
和elif command == "stop":
条件都不满足。
所以,执行else
,打印I don't understand that
。
现在,再次检查while
循环的条件:command != "quit"
但是,这个条件是False
,因为command
的值现在是"quit"
。
因此,
else: print("Game exited")
被执行,因此您的输出变成
I don't understand that Game exited