第二个 if 语句 returns 结果,第一个 if 语句没有
second if statement returns result, first if statement doesn't
在下面的代码中,当 check_result returns 为真时,我希望我的程序终止。
但是,当 check_result(p1) returns True
print 语句打印时,但程序继续执行。
但是如果 check_result(p2) returns True
,语句被打印并且程序终止。请帮我弄清楚为什么第一个不起作用
谢谢!
while game_on:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9\n"))
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 9\n"))
matrix[p2_turn - 1] = "0"
p2.append(p2_turn)
place_mark(matrix)
if check_result(p2):
print("Player 2 wins")
game_on = False
只是放一个 break 语句。 game_on 变量是不必要的。只需使用比 while True
.
稍快的 while 1
while 1:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9\n"))
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 9\n"))
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
。
while game_on:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9\n"))
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 9\n"))
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 获胜的情况,因此这是唯一需要的更改
在下面的代码中,当 check_result returns 为真时,我希望我的程序终止。
但是,当 check_result(p1) returns True
print 语句打印时,但程序继续执行。
但是如果 check_result(p2) returns True
,语句被打印并且程序终止。请帮我弄清楚为什么第一个不起作用
谢谢!
while game_on:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9\n"))
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 9\n"))
matrix[p2_turn - 1] = "0"
p2.append(p2_turn)
place_mark(matrix)
if check_result(p2):
print("Player 2 wins")
game_on = False
只是放一个 break 语句。 game_on 变量是不必要的。只需使用比 while True
.
while 1
while 1:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9\n"))
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 9\n"))
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
。
while game_on:
p1_turn = int(input(f"Player 1, choose a number between 1 and 9\n"))
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 9\n"))
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 获胜的情况,因此这是唯一需要的更改