全部
我有一个看起来像这样的代码:
if condition
if condition:
do something
elif condition:
do something
else:
break
else:
do something
我有一个嵌套的if condition
,我在内部“ if condition
”中引入了一个中断,目的是在不满足条件的情况下从内部if condition
中断,然后继续执行。外部else
的“ if condition
”。
您认为这样做是有意义的吗?有没有简单的方法可以解决问题。
答案 0 :(得分:2)
最简单的方法是重复第一个条件。这样就没有嵌套,并且内部else
的{{1}}与外部if
的{{1}}相同。
else
如果if
昂贵,则将结果存储在某个临时变量中。
另一种选择,您可以将内部的if conditionA and conditionB:
do X
elif conditionA and conditionC:
do Y
else:
do Z
移至一个函数(包括在conditionA
和if
之间执行的所有计算和准备)并将其移至conditionA
在conditionB
中,然后在外部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。您只能中断for
或while
循环。
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
}