如何构建此代码以避免重复?

时间:2016-04-03 10:45:49

标签: if-statement language-agnostic structure

我有两个条件,ab。如果a为真,则应执行一个代码块,如果ab为真,则应执行另一个代码块。是否有更好的方法来构建代码而不是以下内容 - 我可以避免重复测试a吗?

if a or b:
    if a:
        <block 1>
    <block 2>

1 个答案:

答案 0 :(得分:1)

没有重复测试是不可能的。要验证这一点,只需写下真值表。

但是,您可以避免嵌套if语句:

if a:
    <block 1>
if a or b:
    <block 2>

这可以使代码更具可读性。

我在这里假设a是一个布尔值,而不是占位符表示更复杂的表达式,评估可能很昂贵。在后一种情况下,您当然只评估表达式一次,并将结果赋值为布尔值。