Em que caso ocorre o else oscilante ouvir falar desse assunto mas não compreendi alguém sabe…?
Else oscilante
5 Respostas
“Dangling else” é um termo que se usa em teoria de compiladores.
Veja um exemplo disso na Wikipedia: "dangling else":
Cara,
Explica melhor pra gente o que você quer dizer com “else oscilante”???
Fica mais fácil ajudar.
Um abraço
em Java vc pode ter ifs assim
if(condition) { ... } else { ...}
mas, o if/else pode suprimir as chaves { } caso tenha apenas uma instrução no bloco de código. assim ao inves de
if(condition) { x=1; } else { x=2; }
pode ter
if(condition)
x=1
else
x=2
entretanto se vc tiver algo como
if(condition1)
if(condition2)
x=1
else
x=2
não é obvio a qual if o else pertence (deve pertencer ao segundo if, se não me engano). Isto é chamado de else oscilante, pois parece que ele oscila entre um if e outro.
exemplo do livro da deitel
if(x>5)
if(y>5)
System.out.print("x and y >5");
else
System.out.print("x is <=5");
if(x>5)
{
if(y>5)
System.out.print("x and y are >5");
}
else
System.out.print("x is <=5);
O java sempre casa um else com o if imediatamente anterior encontrado no mesmo contexto (bloco de programação)