Java int comparing, 无法找出问题所在
Java int comparing, cannot figure out what is wrong
我是Java的新手,但我似乎无法理解为什么这段代码总是打印66!代码
for (int x = 0; x < columns; ++x) {
for (int y = 0; y < rows; ++y) {
Cell cell = getCell(x, y);
int gridX = (int)cell.getXFromGridX();
int gridY = (int)cell.getYFromGridY();
if (((int)cell.getX()) == gridX && ((int)cell.getGridY()) == gridY) {
continue;
}
++count;
log("CELL ANIMATING", (int)cell.getX() + " " + gridX + " ::: " + (int)cell.getY() + " " + gridY);
基本上,for 循环遍历 66 个项目,如果它们的 gridX == X 和它们的 gridY == Y 那么计数不应该增加,也不应该向控制台输出任何内容。
但是我得到了输出,(只是一个选择)
细胞动画:300 300 ::: 480 400
细胞动画:300 300 ::: 1000 480
细胞动画:360 360 ::: 80 80
细胞动画:360 360 ::: 160 160
细胞动画:360 360 ::: 240 240
输出清楚地表明在某些情况下 gridX == X 和 gridY == Y。
为什么会这样,我该如何解决?
谢谢。
编辑
上面使用的单元格方法都是return浮动的。
在您正在检查的 if
条件下:
cell.getGridY()
在您正在检查的日志打印中:
(int)cell.getY()
这些调用可能 return 不同的值。
将 if 语句中的 cell.getGridY() 更改为 cell.getY()
if (((int)cell.getX()) == gridX && ((int)cell.getGridY()) == gridY) {
我是Java的新手,但我似乎无法理解为什么这段代码总是打印66!代码
for (int x = 0; x < columns; ++x) {
for (int y = 0; y < rows; ++y) {
Cell cell = getCell(x, y);
int gridX = (int)cell.getXFromGridX();
int gridY = (int)cell.getYFromGridY();
if (((int)cell.getX()) == gridX && ((int)cell.getGridY()) == gridY) {
continue;
}
++count;
log("CELL ANIMATING", (int)cell.getX() + " " + gridX + " ::: " + (int)cell.getY() + " " + gridY);
基本上,for 循环遍历 66 个项目,如果它们的 gridX == X 和它们的 gridY == Y 那么计数不应该增加,也不应该向控制台输出任何内容。
但是我得到了输出,(只是一个选择)
细胞动画:300 300 ::: 480 400
细胞动画:300 300 ::: 1000 480
细胞动画:360 360 ::: 80 80
细胞动画:360 360 ::: 160 160
细胞动画:360 360 ::: 240 240
输出清楚地表明在某些情况下 gridX == X 和 gridY == Y。
为什么会这样,我该如何解决?
谢谢。
编辑
上面使用的单元格方法都是return浮动的。
在您正在检查的 if
条件下:
cell.getGridY()
在您正在检查的日志打印中:
(int)cell.getY()
这些调用可能 return 不同的值。
将 if 语句中的 cell.getGridY() 更改为 cell.getY()
if (((int)cell.getX()) == gridX && ((int)cell.getGridY()) == gridY) {