我有一个while循环,说。
game = True
while game == True:
shop = False
while shop == False:
choice = input("Press ENTER to dig. Press E(then ENTER) to end game. Press S(then enter) for shop.")
if choice == "E" or choice == "e":
game = False
但它一直在重复,我也不知道为什么(我也是编码新手,所以可能有一个显而易见的答案)代码的链接在这里。https:/repl.it@WeirdDragonore-digging-sim#main.py
你需要脱离内循环,这样你才能回到外循环的测试。
game = True
while game:
shop = False
while not shop:
choice = input("Press ENTER to dig. Press E(then ENTER) to end game. Press S(then enter) for shop.")
if choice == "E" or choice == "e":
game = False
break
你需要 shop == True
要先从内心打破而。然后,它可以实现 game == False
你需要了解while循环的工作原理,以这个为例。
a = 5
while a == 5:
a = 6
print('done')
输出:
done
我们给while循环的条件是告诉它什么时候停止循环 但python必须先到达该条件才能进行比较 也就是说只要没有break语句,python就会先完成当前的循环。但是在你的代码中,由于该while循环中的另一个while循环永远不会结束,所以我们从来没有给python一个chance来比较该游戏条件。
game = True
while game == True:
shop = False
while shop == False:
choice = input("Press ENTER to dig. Press E(then ENTER) to end game. Press S(then enter) for shop.")
if choice == "E" or choice == "e":
game = False
要解决这个问题,只需要在game = False后面加一个break语句即可。
if choice == "E" or choice == "e":
game = False
break