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

2 respostas
java
A
class A {

public static void main (String args[]) {

for( ;; ) {

System.out.println(A);

}

System.out.println(B);

}

}

2 Respostas

TerraSkilll

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.

A

Entendi. Muito obrigado.

Criado 18 de agosto de 2017
Ultima resposta 18 de ago. de 2017
Respostas 2
Participantes 2