java - 在一行中设置一个变量并检查是否相等

标签 java

我正在创建一个迷宫程序以在 Java 中进行更多练习。我有一个移动玩家的方法,如果移动成功(即它没有撞墙),它会返回一个 boolean 值。

这里是有问题的方法:

public boolean move(Direction direction) {
    if(currentLocation == (currentLocation = maze.movePlayer(this, direction))) {
        return false;
    } else {
        return true;
    }
}

显然,这将始终返回 false。我想知道是否有办法检查 currentLocation 是否没有改变(或者等于 maze.movePlayer(...) 的返回值并设置它们如果不相等则相等)。我不知道是否可以在不调用该方法两次或不使用局部变量的情况下执行此操作。

我希望这是有道理的!

最佳答案

您可以使用条件运算符:

public boolean move(Direction direction) {
     return (currentLocation == (currentLocation = maze.movePlayer(this, direction))) ? false : true;
}

关于java - 在一行中设置一个变量并检查是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11348540/

相关文章:

java - if 语句中的 stack.pop()

java - 如何在 Flink 中为 Google Cloud Storage 创建 RecoverableWriter

java - 将 Realm 角色和资源角色与 Keycloak/Spring Security 一起使用

java - 有没有基于spring hibernate注解的java web cms

java - 异步调用两个 Java 方法

java - 什么maven目标可以用于版本比较?

java - 雅各普 : Solving an 0/1 knapsack problem

java - 3n + 1 失败,原因不明

java - java中使用char的条件

java - 使用静态变量为对象的每个实例创建唯一的代码