Python:如果在循环期间while条件发生变化,如何在运行时结束while循环?

时间:2016-12-11 17:31:32

标签: python while-loop pyscripter text-based

我正在尝试制作基于文本的游戏中的代码。我的游戏使用健康,代码以“健康> 0:”开始,而在游戏的另一个点,当健康最终= 0时,循环仍然继续。当health = 0时,如何在不完成整个循环的情况下使循环结束。

以下是一个例子:

health=100
while health>0:
  print("You got attacked")
  health=0
  print("test")

如果健康= 0时代码没有停止,而不打印“test”?健康= 0时如何让它停止?我编写的代码根据用户操作扣除了健康状况,因此health = 0的时间可能会有所不同。我想在健康状况= 0时结束代码。任何帮助都将受到赞赏。

5 个答案:

答案 0 :(得分:1)

仅在每次迭代开始时评估条件。它不会在迭代过程中检查 (例如,只要您将health设置为零)。

要明确退出循环,请使用break

while health>0:
  ...
  if some_condition:
    break
  ...

答案 1 :(得分:0)

答案 2 :(得分:0)

你应该使用' break'声明要走出循环

health=100
while health>0:
  print("You got attacked")
  # decrement the variable according to your requirement inside the loop
  health=health-1 
  if health==0:
    break
  print("test")

答案 3 :(得分:0)

清洁实施

health = 100
while True:
    if (health <= 0): break
    print ("You got attacked!")
    health = 0
    print ("Testing!")

输出:

You got attacked!
Testing!

答案 4 :(得分:0)

在 while 循环中,只有指定某种条件才能使代码停止。在这种情况下,健康总是大于 0,所以它不断打印“你被攻击了”。 您需要使健康变量减少直到它变为 0 才能打印“测试”。因此;

  `   health=100
      while health>0:
        print("You got attacked")
        health-=5
        if health==0:
         print("test")
         break`

另一种可能是这个;

    `  health=100
      if health>0:
       print("You got attacked")
      if health==0:
       print("test") `