Analise o código Java (incompleto) a seguir. ------- public class Main { public static void main(String[] args) { Status x = Status.Não; switch(x) { case Sim: System.out.println(1); break; case Não: System.out.println(2); break; case Indefinido: System.out.println(2); break; } } } Dado que a execução desse código produz o número 2 na saída, assinale o texto que substitui corretamente o trecho tracejado.
- A)enum Status{ Sim, Não, Indefinido }
Correta: declara um enum chamado Status com os valores Sim, Não e Indefinido, exatamente o que o código usa no switch.
- B)enum { Sim, Não, Indefinido }
Errada: falta o nome do tipo do enum, então a declaração fica incompleta e inválida em Java.
- C)enum x Status { Sim, Indefinido }
Errada: a sintaxe está incorreta e ainda elimina o valor Não, que é essencial para a saída mostrada.
- D)Status { Sim, Não, Indefinido }
Errada: não existe essa forma de declarar tipo em Java, pois falta a palavra-chave enum antes do nome.
- E)String[] Status { "Sim ", "Não ", "Indefinido " }
Errada: isso parece um vetor de strings, não um enum, e não permite o uso de Status.Não como no código.
Gabarito: A
Em Java, a palavra-chave enum serve para criar um tipo enumerado, isto é, um conjunto fixo de constantes nomeadas. No código, a variável x recebe Status.Não e o switch escolhe exatamente o bloco correspondente a esse valor. Como o enunciado diz que a saída é 2, isso bate com o caso Não, que imprime 2 e faz break, encerrando a execução do switch sem cair nos demais ramos. Aqui o trecho faltante precisa declarar corretamente o tipo Status com os três valores possíveis: Sim, Não e Indefinido. Em prova, a FGV gosta de testar se você reconhece a sintaxe exata de enum em Java: nome do tipo, chaves e lista de constantes, tudo bem organizado e sem inventar moda.