如果条件和中断嵌套

时间:2018-08-17 12:12:54

标签: python if-statement

全部

我有一个看起来像这样的代码:

if condition

  if condition: 
     do something
  elif condition:
     do something
  else:
     break
else: 
  do something

我有一个嵌套的if condition,我在内部“ if condition”中引入了一个中断,目的是在不满足条件的情况下从内部if condition中断,然后继续执行。外部else的“ if condition”。

您认为这样做是有意义的吗?有没有简单的方法可以解决问题。

3 个答案:

答案 0 :(得分:2)

最简单的方法是重复第一个条件。这样就没有嵌套,并且内部else的{​​{1}}与外部if的{​​{1}}相同。

else

如果if昂贵,则将结果存储在某个临时变量中。

另一种选择,您可以将内部的if conditionA and conditionB: do X elif conditionA and conditionC: do Y else: do Z 移至一个函数(包括在conditionAif之间执行的所有计算和准备)并将其移至conditionAconditionB中,然后在外部return False中同时检查else和该函数的结果。但是,恕我直言,这种变体可能很难理解。

conditionA

或者,当然,您可以重复if部分,或将其放在函数中并在两个位置调用该函数:

def inner():
    preparation stuff
    if conditionB: 
        do X
    elif conditionC:
        do Y
    else:
        return False
    return True

if not (conditionA and inner()):
    do Z

答案 1 :(得分:1)

break命令仅用于循环,不适用于if-elif-else构造。

I。 e。您只能中断forwhile循环。

来自Python documentation

The break statement, like in C, breaks out of the innermost enclosing for or while loop.

答案 2 :(得分:0)

中断用于跳转或退出循环,而不是if条件。

您可以做

if condition
  {

  if condition: 

     do something

  elseif condition:

     do something
}
else:{

   do something
}