Why is this code giving an “Unreachable Statement”

2019-01-15 22:53发布

问题:

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.

回答1:

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!



回答2:

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



回答3:

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



回答4:

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.