Alternativa D - Somente um dos casos é executado por vez.
Análise Didática da Questão
A questão aborda a estrutura de decisão switch, comum em linguagens como C, C++, Java e C#. Vamos analisar cada alternativa para entender o funcionamento correto dessa estrutura.
Por que a Alternativa D é a correta?
A função principal do comando switch é selecionar um único bloco de código para ser executado com base no valor de uma expressão. Embora seja possível criar "vazamentos" (fall-through) se omitir o break, o propósito lógico da estrutura é escolher um caminho específico entre várias opções disponíveis. Portanto, descrever que apenas um caso é executado (no fluxo padrão esperado) é a afirmação mais adequada entre as opções.
Análise das demais alternativas
- Alternativa A (Incorreta): Os valores nos casos (
case) devem ser constantes ou literais (ex: case 1:, case 'A':). Não é possível usar testes condicionais complexos ou operadores relacionais diretamente no rótulo do caso (como case x > 5:). Para isso, usamos o if. - Alternativa B (Incorreta): O bloco
default é opcional. Ele serve para executar um código quando nenhum dos outros casos corresponde ao valor da expressão, mas sua ausência não impede a compilação ou execução. - Alternativa C (Incorreta): A expressão dentro do
switch geralmente deve retornar tipos primitivos específicos (inteiro, caractere, string), dependendo da linguagem. Nem todos os operadores lógicos ou relacionais são permitidos na própria expressão para gerar um valor comparável aos casos. - Alternativa E (Incorreta): O comando
break é totalmente permitido e, inclusive, recomendado dentro dos grupos de comandos. Sua função é interromper a execução do switch após o caso correspondente rodar, evitando que o código "vaze" para os próximos casos.
Conclusão
A estrutura switch funciona como uma seleção múltipla onde, teoricamente, apenas uma ramificação é ativada para o valor fornecido. Assim, a Alternativa D é a resposta correta.