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.

questionAnswers(2)

yourAnswerToTheQuestion