Quando eu uso este código, por razões óbvias, é gerado um erro de compilação "Unreachable code".
public static void main (String... args){
while (true);
System.out.println("test"); //Compilation error: Unreachable code
}
Mas quando eu uso a instrução if antes do while, não é gerado erro de compilação nem de execução:
public static void main (String... args){
if (true) while (true);
System.out.println("test"); //Aqui há apenas um warning, mas nenhum erro
}
Por que quando a instrução if é utilizada antes de um loop infinito não é gerado nenhum erro, mesmo o loop sendo bem explícito?