Olá amigos,
Me deparei com um código curiosos em um livro para certificação.
Vejam:
public class ifTest {
public static void main(String args[]) {
if (true == false); //reparem no ponto e virgula
{ //aqui começa um bloco de inicialização? pode ter bloco de inicialização dentro de método?
System.out.printf("%s", "TESTE");
}
}
}
Vejam que você é facilmente induzido a pensar que nada é impresso na tela já que true não é igual a false, porém após a instrução if tem um ponto e vírgula, ou seja, se a condição for verdadeira não fará nada e logo embaixo exibe TESTE.
Primeira dúvida: isso aqui
if (true == false);
é tipo isso
if (true == false)System.out.print();
? Não sabia que podia ter if sem nada após a condição e só um ponto e virgula.
Segunda dúvida. Aquele bloco dentro do método main iniciado por uma chave seguido de uma impressão na tela e fechado em seguida com outra chave é um bloco de inicialização? Mas se for ele só deveria ser executado ao criarmos uma instância da classe não é ?
Me ajudem a entender por favor que fiquei com um nó na cabeça.
Abraço