0

这是我的代码,我得到一个无法访问的语句错误,但我不知道为什么。

public boolean Boardload(String[] args) throws Exception
{
    Robot robot = new Robot();
    Color color3 = new Color(114, 46, 33);
    Color color4 = new Color(180, 0, 0);

    {
        Rectangle rectangle = new Rectangle(0, 0, 1365, 770);

        {
            while(false)
            {
                BufferedImage image = robot.createScreenCapture(rectangle);
                search: for(int x = 0; x < rectangle.getWidth(); x++)
                {
                    for(int y = 0; y < rectangle.getHeight(); y++)
                    {
                        if(image.getRGB(x, y) == color3.getRGB())
                        {
                            return true;
                        }
                    }
                }
            }
        }
        return false;
    }
} 

确切的错误是:

java:68: unreachable statement
         {
         ^

帮助会很好,这段代码应该循环直到找到像素。

4

4 回答 4

7

我认为问题在于你的循环是

while(false) {

这个循环永远不会执行,因为false != true. 因此,Java 编译器告诉您循环体中的任何内容都不会执行,因此它是无法访问的。

尝试将循环更改为

while (true) {

(惯用的“永远循环”),看看是否能解决问题。

希望这可以帮助!

于 2012-02-15T22:02:14.773 回答
4

while(false)始终false是并且永远不会执行循环体:unreachable。更改为while (true)

于 2012-02-15T22:02:48.207 回答
2

该语句while(false)将永远不会在该循环中执行任何操作,因此它都是不可访问的。

于 2012-02-15T22:03:13.027 回答
2

抱歉,那是一些臭代码。我不确定在声明您的 Color 本地变量和声明您的 Rectangle 变量之后大括号/块在做什么。unreachability 的主要问题是while(false),这意味着它永远不会执行关联的块。

于 2012-02-15T22:06:07.200 回答