Błąd nieosiągalnej instrukcji przy użyciu pętli while w java [duplikat]
Możliwy duplikat:
Dlaczego ten kod podaje błąd „Nieosiągalne oświadczenie”?
To wydaje się bardzo proste pytanie, znalazłem to pytanie w jednej książce. Jeśli ktoś pomoże mi dowiedzieć się, dlaczego otrzymuję błąd.
do {
System.out.print("inside do");
} while (false);
while (false) { // error
System.out.print("inside while");
}
System.out.print("outside");
Pomyślałem i według mnie wyjście powinno byćwewnątrz dooutside. Ale to pokazujeBłąd kompilatora: nieosiągalne oświadczenie. Potem próbowałem dowiedzieć się, dlaczego to pokazujeBłąd kompilacji: nieosiągalne oświadczenie * . Więc zmieniam powyższy kod w ten sposób
boolean i = false;
do {
System.out.print("inside do");
} while (false);
while (i) { // ok
System.out.print("inside while");
}
System.out.print("outside");
Teraz pokazuje oczekiwane wyjście, tj.wewnątrz dooutside . Więc moje pytanie brzmi - co sprawia, że różnica w pierwszym i drugim przypadku? Również, gdy sprawdzam
if(false){
//something here
}
Następnie powyższy kod wykonuje się bez żadnego błędu.