Python:无法跳出这个 while 循环

Python: Can't break out of this while loop

提问人:xXSnowieXx 提问时间:10/15/2023 更新时间:10/15/2023 访问量:22

问:

    while True:
        result = random.randint(1, 100)
        
        for i in range(len(my_names)):
            my_name = my_names[i]
            my_rd = my_round(my_name, mys_hands[i], result)
            if my_rd == False:
                break
            else:
                for i in range(len(my_names)):
                    if not mys_hands[i]:
                        print("OK!")
                        break

帮助。如果不更改程序中的任何其他内容,我似乎无法完全摆脱这个 while 循环(现在我的程序只是在 while 循环的顶部重新启动。

我知道这是因为最后一个中断只突破了 for 循环而不是 while 循环。我尝试将各种缩进下的最后一个“中断”向后移动,但它破坏了我的程序。我还尝试使用这里教授的继续和中断,但它仍然不起作用(我的程序已更改)。如何在不使用函数的情况下跳出循环?谢谢!

python-3.x while循环

评论

0赞 Mark 10/15/2023
目前尚不清楚哪个休息应该做什么。应该同时退出循环还是只退出第一个循环?也许不是,您可以在某个状态存在时循环,并在中断之前更改该状态。breakwhilewhile True

答:

2赞 John Gordon 10/15/2023 #1

不要使用 ,而是使用 flag 变量,并在脱离内部循环时将该 flag 变量设置为 false。while True

flag = True
while flag:
    ...
    for x in something:
        ...
        if want_to_break_out_of_while_loop:
            flag = False
            break
0赞 GrayCat 10/15/2023 #2

你可以把这个循环放在一个函数中,然后从一个函数返回。

符合人体工程学,即使使用深度嵌套的 for 循环,但与其他答案相比,在选择要中断的循环时提供的灵活性较小。

一如既往 - 取决于您想要实现的目标。

def func():
  while True:
    for i in something:
      for x in something_else:
        return