comecei a estudar para a certificação pelo livro SCJP,
nos primeiros códigos que eu estou executando encontrei pontos e vírgulas em lugares desnecessários
no final da linha do método main por exemplo e logo após o loop.
O programa compilou e rodou normalmente.
Aguém sabe explicar o que acontece?
Porque o compilador não reclama?
E pior ainda (eu acho), roda sem problemas?
public class TestDays {
enum Days {MON, TUE, WED};
public static void main (String [] args) {;
for (Days day : Days.values())
;;;;;;;;;;;;;;;;;;;;;;;;;;
Days[] days = Days.values();
System.out.print(days[2]);
}
}
Isso acontece porque o compilador java entende que o ponto-e-virgula é o final de uma linha, e cada linha representa uma ação.
por exemplo, quando você declara um método
public void novoMetodo() {
}
na linha 01, ele declarou um método, publico, que vai retornar void e abre o bloco desse método onde inicia as ações desse método
então quando você faz
public void novoMetodo() {
int x = 3;
}
a primeira ação do novo método é a declaração da variável x, com o valor 3.
e quando fazemos assim
public void novoMetodo() {
;
int x = 3;
;;;;
}
a primeira ação, é vazia, então o compilador do java simplesmente ignora isso, depois vem a ação de declarar a variável, e depois, tem mais quatro ações vazias, que o compilador vai ignorar, por isso que funciona.
Acabei de passar pelo mesmo problema e vim aqui em busca de uma resposta…
No caso, independentemente da quantidade de pontos-e-vírgulas que sejam colocadas no código, cada um deles será interpretado como uma nova linha de código sem nenhuma ação a ser executada.