Why is this code giving an “Unreachable Statement”

2019-01-15 23:01发布

This is my code and im getting an unreachable statement error on it but i do not know why.

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;
    }
} 

the exact error is:

java:68: unreachable statement
         {
         ^

Help would be nice, this code is supposed to loop until the pixel is found.

4条回答
beautiful°
2楼-- · 2019-01-15 23:14

while(false) is always false and the loop body is never executed: unreachable. Change to while (true).

查看更多
疯言疯语
3楼-- · 2019-01-15 23:18

I think the problem is that your loop is

while(false) {

This loop never executes, because false != true. Consequently, the Java compiler is telling you that nothing in the body of the loop will ever execute, and hence it's unreachable.

Try changing your loop to

while (true) {

(the idiomatic "loop forever") and see if that fixes things.

Hope this helps!

查看更多
来,给爷笑一个
4楼-- · 2019-01-15 23:29

Sorry, but that is some smelly code. I'm not sure what the braces/blocks are doing after declaring your Color local vars, and after declaring your Rectangle var. The main problem for unreachability is while(false), which means it will never execute the associated block.

查看更多
混吃等死
5楼-- · 2019-01-15 23:38

The statement while(false) will never execute anything within that loop, thus it's all un-reachable.

查看更多
登录 后发表回答