Perché questo codice dando un errore “irraggiungibile Statement”?
-
25-10-2019 - |
Domanda
Questo è il mio codice e im ottenendo un errore dichiarazione irraggiungibile su di esso, ma non so perché.
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;
}
}
l'errore esatto è:
java:68: unreachable statement
{
^
Guida sarebbe bello, questo codice dovrebbe ciclo fino a quando viene trovato il pixel.
Soluzione
Credo che il problema è che il ciclo è
while(false) {
Questo ciclo non esegue mai, perché false != true
. Di conseguenza, il compilatore Java vi sta dicendo che nulla nel corpo del ciclo potrà mai eseguito, e quindi è irraggiungibile.
Provare a cambiare il ciclo di
while (true) {
(il "loop sempre" idiomatica) e vedere se questo risolve le cose.
Spero che questo aiuti!
Altri suggerimenti
while(false)
è sempre false
e il corpo del ciclo non viene mai eseguito: irraggiungibile . Passare alla while (true)
.
Il while(false)
dichiarazione sarà mai eseguito nulla all'interno di tale ciclo, quindi è tutto non-raggiungibile.
Siamo spiacenti, ma questo è un codice puzzolente. Non sono sicuro di quello che le parentesi graffe / blocchi stanno facendo dopo aver dichiarato tuoi Vars locali di colore, e dopo aver dichiarato rettangolo var. Il problema principale per unreachability è while(false)
, il che significa che non eseguire il blocco associato.