SyntaxError: 'break' outside loop when I use it in loop

SyntaxError: 'break' outside loop when I use it in loop

问题

嗨,我有一个问题。好吧,我知道我不能在循环外使用 break 但我在循环中使用它仍然会出错。

我做什么

我创建了一个函数,它有一个命令 break 并在循环中使用它。我得到一个错误。我不能做这样的事情:

function()
break()

因为我的函数有一个 if 语句,例如:

do somthing
if that:
   break

代码

def destroy():
    i = o.index(rect)
    MAPh[i] -= 1
    if MAPh[i] <= 0:
        del o[i]
        del MAP[i]
        del MAPxy[i]
        del MAPh[i]
        break

for a in range(len(MAP)):
    ...
    destroy

中断或继续是循环的一部分。如果您的代码中有循环,您可以使用它们。如果你只是使用条件语句,你不能也不需要使用 break。只需删除它或将您的代码放入循环中。

从循环中调用函数并不意味着您可以从中打破循环。 break 语句必须在循环范围内直接,而不是隐式

如果你想在满足函数中的条件时中断循环,你可以将函数更改为return循环中断的指示器:

def destroy():
    ...
    if condition:
        return True
    return False

for a in range(len(MAP)):
    ...
    if destroy():
        break