第二个 if 语句返回结果,第一个 if 语句不返回结果



在下面的代码中,当check_result返回true时,我希望程序终止。然而,当check_result(p1)返回True时,print语句打印,但程序继续执行。

但是如果check_result(p2)返回True,则输出语句并终止程序。请帮我弄清楚为什么第一个不行谢谢!

while game_on:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9n"))
matrix[p1_turn - 1] = "X"
p1.append(p1_turn)
place_mark(matrix)
if check_result(p1):
print("Player 1 wins")
game_on = False
p2_turn = int(input(f"Player 2, choose a number between 1 and 9n"))
matrix[p2_turn - 1] = "0"
p2.append(p2_turn)
place_mark(matrix)
if check_result(p2):
print("Player 2 wins")
game_on = False
while game_on:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9n"))
matrix[p1_turn - 1] = "X"
p1.append(p1_turn)
place_mark(matrix)
if check_result(p1):
print("Player 1 wins")
game_on = False
break
p2_turn = int(input(f"Player 2, choose a number between 1 and 9n"))
matrix[p2_turn - 1] = "0"
p2.append(p2_turn)
place_mark(matrix)
if check_result(p2):
print("Player 2 wins")
game_on = False

只需添加break语句,如果玩家1获胜,它将实现,它将game_on设置为false并终止循环。
你的代码适用于玩家2获胜的情况,所以这是唯一需要更改的

放一个break语句。game_on变量是不必要的。

while 1while True快一点。
while 1:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9n"))
matrix[p1_turn - 1] = "X"
p1.append(p1_turn)
place_mark(matrix)
if check_result(p1):
print("Player 1 wins")
break
p2_turn = int(input(f"Player 2, choose a number between 1 and 9n"))
matrix[p2_turn - 1] = "0"
p2.append(p2_turn)
place_mark(matrix)
if check_result(p2):
print("Player 2 wins")
break
if check_result(p1):
print("Player 1 wins")
game_on = False

你在这里看到任何break语句吗?while循环不会自己断开。

if check_result(p1):
print("Player 1 wins")
game_on = False
break

你可以完全用break语句替换这个game_on变量:

if check_result(p1):
print("Player 1 wins")
break
if check_result(p2):
print("Player 2 wins")
break

如果你想更好地了解break(也可能是continue)的用法,请阅读this

最新更新