Sur*_*gie 3 java methods if-statement
我目前正在编写游戏蛇.简而言之,我对if语句有疑问.给我带来麻烦的部分是检查蛇是否与自身发生碰撞的方法.
if语句如下所示:
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
跟我一起在这里的文字墙上.我试图用这段代码说的是:如果蛇的头部与蛇身体的任何其他部分具有相同的坐标,那就是它的游戏.
最初蛇的长度是3,并由一系列坐标控制.所以循环中的第一轮将检查是否:
xPos[2] == xPos[0] and the same with yPos[2] == yPos[0]
xPos[2] = 88 , xPos[0] = 66 , yPos[2] = 55 , yPos[0] = 55.
Run Code Online (Sandbox Code Playgroud)
当我运行程序时,蛇会不停地停止.这很奇怪,因为我检查了方法得到的值.显示的值是我的if语句检查的值.现在我相信88和66并不等于彼此.
我在论坛上环顾四周,以便更好地解释&&运算符,一篇文章告诉我,如果第一个是真的,&&只检查两个语句.并且单个&将检查两个参数是否都为真.但我和&和&&得到了相同的结果.
我在这里可以忽略一些傻事吗 我累了吗?你能否看到这个陈述有什么问题?并告诉我为什么它认为88 == 66?
谢谢你的时间!