如何用2个布尔值确定不同的行为?

Rob*_*bb1 3 java if-statement switch-statement

我有2个boolean变量,例如:

boolean isWhite;
boolean isTall;
Run Code Online (Sandbox Code Playgroud)

所以我想确定4种可能情况的不同行为({(isWhite, isTall), (!isWhite, isTall), (isWhite, !isTall), (!isWhite, !isTall)}).

1)有没有if/else每次使用更优雅和实用的方法

if(isWhite) {
    if(isTall) {
        // Case 1
    }
    else {
        // Case 2
}
else {
    if(isTall) {
        // Case 3
    }
    else {
        // Case 4
}
Run Code Online (Sandbox Code Playgroud)

2)做这样的事情会有什么不同吗?

if (isWhite && isTall)
    // Case 1
if (isWhite && !isTall)
    // Case 2
if (!isWhite && isTall)
    // Case 3
if (!isWhite && !isTall)
    // Case 4
Run Code Online (Sandbox Code Playgroud)

小智 6

您的第二个解决方案更易读.但是你应该使用if-else而不仅仅是if语句.考虑第一种情况是否已经成立.还将计算其他3个if语句.如果使用if-else语句并且第一种情况为真,则将跳过其他3个语句.

if (isWhite && isTall) {//case1}
else if (isWhite && !isTall) {//case2}
else if (!isWhite && isTall) {//case3}
else {//case4}
Run Code Online (Sandbox Code Playgroud)