最干净的方式来写2布尔条件(4分支)

问题描述:

我有这个代码。 true_varother_true_varboolean值。四个条件分支是不同的。最干净的方式来写2布尔条件(4分支)

if true_var && other_true_var: 
    # do something 0 
else if true_var && not other_true_var: 
    # do something 1 
else if not true_var && other_true_var: 
    # do something else 
else: 
    # both are false, do a crazy thing 

有没有“接受”的方式来写这个?我可以将所有条件语句放入返回布尔值的方法中,但似乎在顶部。

我会做的最小数量的测试如下:

if (A) 
{ 
    if (B) { // case 0 } 
    else { // case 1 } 
} 
else 
{ 
    if (B) { // something else } 
    else {/crazy } 
} 

这似乎是正确的。

它可以去任何顺序,但是这似乎是一个正确的方式来做到这一点

如果某些分支身体很小我宁愿将它们放在顶部,这使得代码更具可读性。如果有条件的“自然”顺序,请遵循该条件。

如果你真的关心速度,你可能想把最可能的分支放在最上面。

所提供的代码并没有真正告诉我们关于布尔值及其语义的任何信息。给定两个无意义的任意独立布尔值,所提供的代码很好。

但我们都不使用无意义的任意变量,或者至少我们都不应该。有一个原因是& b导致一个代码路径,并且&!b到另一个等等。对于& b是什么意思?命名。与其他人一样。也许事实证明,某些设置具有相关行为,并且您可以重新调整代码以反映这一点。

由于缺乏提供的变量的含义,我们无法真正回答所提出的问题。当有意义时,你可以做出有意义的选择。