Java - 如果声明,如果两者和每个

sup*_*per 0 java if-statement

所以我有两个变量:

int x = 3;
int y = 7;
Run Code Online (Sandbox Code Playgroud)

然后我有这个代码:

int key = 4; // Can be anything

if (key == x || key == y) {
    if (key == x) {
        // Do something with x
    } else {
        // Do something with y
    }

    // Do something with both x and y
}
Run Code Online (Sandbox Code Playgroud)

我真的很生气,不得不写key == x2次,因为在我的原始代码中可能是非常长的东西:

key == StaticRandomVeryLongNamedClassName.getARandomNumber()
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,而不必写key == x两次?

Bre*_*etC 5

只需将条件的结果分配给局部变量......

boolean equalsX = key == x;
boolean equalsY = key == y;

if(equalsX || equalsY) {
    if(equalsX) {
    }

    if(equalsY) {
    }
}
Run Code Online (Sandbox Code Playgroud)