Почему этот код выдает ошибку "Недоступное заявление"?
Это мой код, и я получаю ошибку недостижимого утверждения на нем, но я не знаю почему.
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)
никогда не будет выполнять что-либо в этом цикле, поэтому все это недостижимо.