Erro de copilação 'else' without 'if' else ^. Qual o problema?

public class Idade{
public static void main(String[]args){
float idade=70;
if(idade<=12);{
System.out.println(“Criança”);
}
elseif(idade>12&&idade<18);{
System.out.println(“Adolecente”);
}
elseif(idade>=18&&idade<65);{
System.out.println(“Adulto”);
}
else
System.out.println(“Idoso”);
}
}

Reparou que tem um ; depois do ) e antes do {?

EDIT: talvez você tenha esquecido, mas, o java entende que uma linha/instrução foi encerrada quando você tem:
{ (abre chaves)
} (fecha chaves)
; (ponto e vírgula)

 public class Foo { //a instrução de declaração da classe Foo encerra aqui
     public /* linha prossegue */
               void /* linha prossegue */
                       metodoEstranho( /* linha prossegue */
                                 String arg) /* linha prossegue */
                                                  { //término da linha de criação do método
             return
                      ; //Fim da instrução
      }//fim da instrução do método
 } //a instrução de delimitação da classe Foo encerra aqui

O java aceita, também, o if sem chaves

 if(/*instrução booleana*/)
     //faz algo
else
    //faz outro algo

Assim sendo, ele entende que

   if(/*instrução booleana*/);

É uma linha válida, inútil, mas válida.
E, provavelmente, seja isso que está matando teu código aí.

1 curtida

O ; é quase sempre interpretado como final de instrução na maioria das linguagens (exceção classica é o loop for com 3 estágios)

Se vc pode usar uma IDE que pode aplicar alguma auto-formatação (alinhamentos, separar em diversas linhas) isso ajuda muito pois este erro é claramente de “estilo”

Eu ainda estou aprendendo a programação java. Como que esse meu código teria que ficar para copilar?

Leia o que eu escrevi e pense a respeito da necessidade do bendito ; nesta linha