繁体   English   中英

打破if语句中的while循环

[英]Break out of while loop within an if statement in an function

我目前停留在我试图打破这种循环的东西上

while True
    if blah blah
        function()
        if blah blah:
            #break while loop

我尝试了很多方法,但似乎无法正常工作,有人可以教我吗?

编辑:我修复了我在上面键入的示例。

这正是break语句的作用。

while True:
    function()
    if blah blah:
        break

当然,如果可能,应将测试移至循环条件。

while not blah blah:
    function()

如果您需要从函数的“内部”中断循环,则有几种方法可以做到:

  • 从函数返回True / False,并在循环中检查返回值
  • 从函数中引发特殊异常并将其捕获到循环中

例子:

# example 1
def function():
    if cloudy and not umbrella:
        print "no good to stay outside"
        return False
    return True

while nice_weather:
    if not function():
        break


# example 2
class RunHome(Exception):
    pass

def function():
    if thunderstorm:
        raise RunHome()

while enjoying:
    try:
        function()
    except RunHome as re:
        break

根据函数和循环的实际作用,其他一些技术也可能适用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM