gpt4 book ai didi

Java int 比较,无法找出问题所在

转载 作者:行者123 更新时间:2023-12-01 22:25:29 25 4
gpt4 key购买 nike

我是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。

这是为什么?我该如何解决它?

谢谢。

编辑

上面使用的单元格方法都返回 float 。

最佳答案

在您要检查的 if 条件中:

cell.getGridY()

在您检查的日志打印中:

(int)cell.getY()

这些调用可能返回不同的值。

关于Java int 比较,无法找出问题所在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28865213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com