0

我正在做某事并撞到了一堵砖墙。我的程序应该做一个避开光标的圆圈。我几乎完成了,但我只需要底部的 if 语句帮助。我将如何正确格式化它,这样我就不会一直收到错误?

private void setCircle(MouseEvent s) {

    int getx = s.getX();int gety = s.getY();

    Random random = new Random();

    randomX = random.nextInt(700 - 51) + 51;
    randomY = random.nextInt(700 - 51) + 51;


    setX(randomX); setY(randomY);


    if((getx)>x)&&(getx)<(x+80))||((getx)>x)&&(getx)>(x-80))&&((y<gety)&&(gety<(y+80))||((gety)>y)&&(gety)>(y-80)){

        repaint();
    }
}
4

1 回答 1

3

错误就在这里:

if((getx)>x)&&...
  ^        ^    

当编译器解析第二个 end-paren 时,它认为标记的括号包含了整个 if 语句。要解决此问题,请重新组织括号(我会遵循 kiheru 的评论并拆分您的条件)。

首先,您正在检查是否getx并且gety在某个范围内。例如,您可以编写:

boolean getxInBounds = getx > x && getx < (x+80);

并在您的 if 语句中使用该变量。

于 2013-07-29T20:56:17.793 回答