Почему этот код выдает ошибку "Недоступное заявление"?

Это мой код, и я получаю ошибку недостижимого утверждения на нем, но я не знаю почему.

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 ответа

Решение

Я думаю, что проблема в том, что ваш цикл

while(false) {

Этот цикл никогда не выполняется, потому что false != true, Следовательно, компилятор Java сообщает вам, что ничего в теле цикла никогда не будет выполняться, и, следовательно, он недоступен.

Попробуйте изменить свой цикл на

while (true) {

(идиоматический "цикл навсегда") и посмотреть, исправит ли это вещи.

Надеюсь это поможет!

while(false) всегда false и тело цикла никогда не выполняется: недоступно. Изменить на while (true),

Извините, но это какой-то вонючий код. Я не уверен, что делают фигурные скобки / блоки после объявления ваших локальных переменных Color и после объявления вашей Rectangle var. Основная проблема недоступности while(false), что означает, что он никогда не выполнит связанный блок.

Заявление while(false) никогда не будет выполнять что-либо в этом цикле, поэтому все это недостижимо.

Другие вопросы по тегам