user1179522
user1179522

Reputation: 155

Why is this code giving an "Unreachable Statement" error?

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.

Upvotes: 0

Views: 4648

Answers (4)

Kevin Welker
Kevin Welker

Reputation: 7947

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.

Upvotes: 2

Mike Christensen
Mike Christensen

Reputation: 91716

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

Upvotes: 2

hmjd
hmjd

Reputation: 122001

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

Upvotes: 4

templatetypedef
templatetypedef

Reputation: 373382

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!

Upvotes: 7

Related Questions