这块代码有更优雅的解决方案吗?

时间:2012-04-11 17:35:29

标签: algorithm

var b = someObjectThatWillNotBeNull;
var a = getA();

if(a != null) {
    if(a.id == b.id) {
        functionA();
    } else {
        functionB();
    }
} else {
    functionB();
}

我经常遇到这个结构,总是需要复制functionB所在的代码。这看起来有点草率。有更好的方法吗?

3 个答案:

答案 0 :(得分:11)

if (a != null && a.id == b.id) {
    functionA();
} else {
    functionB();
}

你的意思是什么?

答案 1 :(得分:5)

这有点简单:

if (a == null || a.id != b.id)
    functionB();
else
    functionA();

答案 2 :(得分:0)

这里我们正在利用&& operator as 1st exp将被评估为true,那么只有下一个exp将在if()语句

中计算
        if(a != null && a.id==b.id) {
         functionA();
        } 
        else {
        functionB();
        }