编程语言
首页 > 编程语言> > java – 检查三个布尔值中至少有两个是真的

java – 检查三个布尔值中至少有两个是真的

作者:互联网

一位采访者最近问我这个问题:给定三个布尔变量a,b和c,如果三个中至少有两个为真,则返回true.

我的解决方案是:

boolean atLeastTwo(boolean a, boolean b, boolean c) {
    if ((a && b) || (b && c) || (a && c)) {
        return true;
    }
    else{
        return false;
    }
}

他说这可以进一步改善,但如何?

解决方法:

而不是写:

if (someExpression) {
    return true;
} else {
    return false;
}

写:

return someExpression;

至于表达本身,这样的事情:

boolean atLeastTwo(boolean a, boolean b, boolean c) {
    return a ? (b || c) : (b && c);
}

或者这个(无论你发现哪个更容易掌握):

boolean atLeastTwo(boolean a, boolean b, boolean c) {
    return a && (b || c) || (b && c);
}

它只测试a和b一次,最多c次测试一次.

参考

> JLS 15.25 Conditional Operator ? :

标签:java,boolean,boolean-logic
来源: https://codeday.me/bug/20190918/1811412.html