我正在创建一个迷宫程序以在 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/