Alternativa A - Cada [valor] seguindo a palavra case deve ser definido por constantes ou literais.
Análise da Questão
A questão aborda a sintaxe específica do comando switch-case na linguagem de programação C. Para identificar a resposta correta, precisamos entender como essa estrutura funciona tecnicamente.
Por que a Alternativa A é Correta?
No C, o switch avalia uma expressão e compara seu resultado com as constantes listadas após a palavra-chave case.
- Regra Fundamental: Os valores utilizados nos
case devem ser constantes inteiras (inteiros conhecidos em tempo de compilação). - Exemplo:
case 5: ou case 'A': são válidos. - Inválido:
case x: (onde x é uma variável) gera erro de compilação, pois o compilador precisa saber o endereço de memória exato para construir a tabela de saltos.
Análise das Demais Alternativas
- (B) O código para o caso default é obrigatório.
- Incorreto. O
default é opcional. Ele serve apenas para capturar valores que não correspondem a nenhum case anterior. Se não existir nenhuma correspondência e não houver default, o programa simplesmente sai do bloco switch. - (C) não pode ser definida por constantes ou literais.
- Incorreto. Esta opção contradiz a regra básica do C. Os valores devem ser constantes.
- (D) Somente um dos grupos de comandos pode ser executado de cada vez.
- Incorreto (com ressalvas). Embora a lógica ideal seja executar um único bloco, o C possui um comportamento chamado "Fall-through" (queda). Se você esquecer de colocar a instrução
break; ao final de um case, a execução continuará automaticamente para o próximo case, executando múltiplos blocos consecutivos até encontrar um break ou o fim do switch. - (E) O comando break não é permitido no interior dos grupos de comandos.
- Incorreto. O
break é extremamente comum e necessário dentro de um case para interromper a sequência de execução e sair do switch.
Resumo
A única afirmação estritamente verdadeira sobre a sintaxe do switch em C é que os rótulos (case) devem ser definidos por constantes ou literais, permitindo ao compilador criar uma tabela eficiente de busca.