Por que esse programa não compila? Uma coisa que percebi é que quando um laço infinito proposital é criado e tem uma instrução após esse laço o java aponta um erro e não compila

class A {
public static void main (String args[]) {
for( ;; ) {
System.out.println(“A”);
}
System.out.println(“B”);
}
}

O erro é “Unreachable Statement”, que quer dizer que o trecho de código depois do for ( “System.out.println(“B”);”) nunca é alcançado. Suas opções são tirar essa linha ou tornar o loop finito, para que haja a possibilidade de essa linha ser executada.

Sem entrar em muitos detalhes, esse tipo de código que nunca executa não é permitido porque o compilador não consegue avaliá-lo e torná-lo bytecode, pois nunca chega nele. Para evitar o problema de o compilador não conseguir gerar esse código, é disparado esse tipo de erro.

Abraço.

1 curtida

Entendi. Muito obrigado.