Java If语句未按预期工作
我目前正在编写游戏蛇。简而言之,我对if语句有一个问题。给我带来麻烦的部分是一种检查蛇是否与自身碰撞的方法 if语句如下所示:Java If语句未按预期工作,java,if-statement,methods,Java,If Statement,Methods,我目前正在编写游戏蛇。简而言之,我对if语句有一个问题。给我带来麻烦的部分是一种检查蛇是否与自身碰撞的方法 if语句如下所示: public void checkCol(){ for(int i = 0; i < snake.getLength(); i++){ if((snake.getXPosArray()[snake.getLength() - 1] == snake.getXPosArray()[i]) &&
public void checkCol(){
for(int i = 0; i < snake.getLength(); i++){
if((snake.getXPosArray()[snake.getLength() - 1] == snake.getXPosArray()[i])
&& (snake.getYPosArray()[snake.getLength() - 1] == snake.getYPosArray()[i])){
gameOver();
}
}
}
当我运行程序时,蛇立即停止。Wich是wierd,因为我检查了该方法将获得的值。上面显示的值是if语句检查的值。现在我相信88和66并不相等
我在论坛上四处寻找对&&运算符的更好解释,一篇帖子告诉我&&只检查两个语句是否第一个是真的。一个&将检查两个参数是否都为真。但是我用&和&&得到了同样的结果
我是不是忽略了一些愚蠢的事情?我累了吗?你们能看出这句话有什么不对吗?告诉我为什么它认为88==66
谢谢你的时间 你在蛇的每个细胞上循环,包括头部。头部与头部处于同一位置,因此蛇会吃掉自己的脸并死亡。不要将磁头包含在循环中。与和的区别在于,一个是逻辑运算符,另一个是短路运算符
另外,除非getLength在头部下加了一个值,否则最终会将头部与头部本身进行比较。如果,是否尝试打印
中的值?您的想法很好,但不能将头部与自身进行比较。我在数组长度中添加了-1。现在它就像一个符咒。非常感谢!现在应该上床睡觉了当5分钟的限制结束时,D将接受答案。宝贵的生命教训:不要吃自己的脸。我在数组长度中添加了-1。现在它就像一个符咒。非常感谢!现在应该上床睡觉了当超过5分钟限制时,D将接受答案。我在数组长度中添加了-1。现在它就像一个符咒。非常感谢!现在应该上床睡觉了当5分钟的限制结束时,D将接受答案。如果您想了解其中的区别,请查看有关和的链接。还要确保对有帮助的答案投赞成票。
xPos[2] == xPos[0] and the same with yPos[2] == yPos[0]
xPos[2] = 88 , xPos[0] = 66 , yPos[2] = 55 , yPos[0] = 55.