Java中的滑动拼图,需要帮助理解这种方法



我正在遵循一个在线教程,用于在Android Studios上构建Java中的滑动拼图,我需要帮助来理解这种方法。

在这里,我以前从未见过像回归这样的事情。我知道它有点变化,但我不知道它是如何工作的。此外,左是 0,右是 1,上是 2,下是 3。谢谢

public int getPossibleMoves() {
    int x = getColumnAt(handleLocation);
    int y = getRowAt(handleLocation);
    boolean left = x > 0;
    boolean right = x < width - 1;
    boolean up = y > 0;
    boolean down = y < height - 1;
    return(left ? 1 << DIRECTION_LEFT : 0) |
            (right ? 1 << DIRECTION_RIGHT : 0) |
            (up ? 1 << DIRECTION_UP : 0) |
            (down ? 1 << DIRECTION_DOWN : 0);
}

返回中的语句称为条件表达式

条件表达式采用完全不同的样式,语句中没有显式 if。语法为:

boolean-expression ? expression1 : expression2;

如果布尔表达式为真,则此条件表达式的结果为 expression1;否则结果为 expression2