Dominando a Instrução Switch em C#: Sintaxe, Exemplos e Boas Práticas
Instrução switch em C#
Descubra como substituir cadeias complexas de if-else por uma instrução switch limpa e legível em C# — completa com exemplos práticos.
Instruções switch simplificam a tomada de decisão avaliando uma única expressão e executando o bloco case correspondente. Comparado a uma longa escada if-else, a sintaxe switch é mais concisa e fácil de manter.
A estrutura básica é:
switch (variavelOuExpressao) { case valor1: // Código para valor1 break; case valor2: // Código para valor2 break; // … default: // Código quando nenhum case corresponde }
Quando a expressão corresponde a um case, o bloco correspondente executa até que um break termine o switch. Se nenhum case corresponder, o bloco default executa, espelhando uma cláusula else.
Sem break, a execução "cairia" (fall through) e continuaria nos cases subsequentes — frequentemente levando a bugs. Para um mergulho mais profundo na instrução break em C#, consulte a documentação oficial.
Exemplo 1: Identificando Vogais
using System; namespace Condicional { class SwitchCase { public static void Main(string[] args) { char ch; Console.WriteLine("Digite uma letra"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) { case 'a': Console.WriteLine("Vogal"); break; case 'e': Console.WriteLine("Vogal"); break; case 'i': Console.WriteLine("Vogal"); break; case 'o': Console.WriteLine("Vogal"); break; case 'u': Console.WriteLine("Vogal"); break; default: Console.WriteLine("Não é uma vogal"); break; } } } }
Executar o programa produz:
Digite uma letra X Não é uma vogal
Aqui, a entrada do usuário é convertida para minúscula e comparada com os cases de vogais. Se nenhuma vogal corresponder, a mensagem default é exibida.
Como todos os cases de vogais executam a mesma ação, eles podem ser agrupados:
Exemplo 2: Cases Agrupados
using System; namespace Condicional { class SwitchCase { public static void Main(string[] args) { char ch; Console.WriteLine("Digite uma letra"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) { case 'a': case 'e': case 'i': case 'o': case 'u': Console.WriteLine("Vogal"); break; default: Console.WriteLine("Não é uma vogal"); break; } } } }
A saída permanece idêntica, mas o código é notavelmente mais limpo.
Instruções switch são limitadas a tipos de dados específicos:
- Tipos primitivos (bool, char, tipos integrais)
- Enumerações (enum)
- String
- Versões nullable dos acima
Exemplo 3: Calculadora Simples
using System; namespace Condicional { class SwitchCase { public static void Main(string[] args) { char op; double primeiro, segundo, resultado; Console.Write("Digite o primeiro número: "); primeiro = Convert.ToDouble(Console.ReadLine()); Console.Write("Digite o segundo número: "); segundo = Convert.ToDouble(Console.ReadLine()); Console.Write("Digite o operador (+, -, *, /): "); op = (char)Console.Read(); switch(op) { case '+': resultado = primeiro + segundo; Console.WriteLine("{0} + {1} = {2}", primeiro, segundo, resultado); break; case '-': resultado = primeiro - segundo; Console.WriteLine("{0} - {1} = {2}", primeiro, segundo, resultado); break; case '*': resultado = primeiro * segundo; Console.WriteLine("{0} * {1} = {2}", primeiro, segundo, resultado); break; case '/': resultado = primeiro / segundo; Console.WriteLine("{0} / {1} = {2}", primeiro, segundo, resultado); break; default: Console.WriteLine("Operador Inválido"); break; } } } }
Exemplo de execução:
Digite o primeiro número: -13.11 Digite o segundo número: 2.41 Digite o operador (+, -, *, /): * -13.11 * 2.41 = -31.5951
Esta calculadora aceita dois operandos e um operador, então realiza a operação solicitada usando um switch. Entradas são lidas via ReadLine() e Read(); para mais sobre entrada/saída, veja Entrada e Saída Básica em C#.
Embora uma cadeia if-else pudesse substituir o switch, este oferece intenção mais clara e execução mais rápida para valores discretos.
Linguagem C
- Circuito com Chave: Guia Prático para Circuitos Elétricos Básicos
- Experimento com Diodo Comutador: Suprimindo Retorno Indutivo com Lâmpada de Neônio
- Entendendo Chaves Elétricas: Tipos, Funções e Aplicações
- Eliminando Bounce de Contatos em Chaves Mecânicas
- Multímetros: Do Analógico ao Digital — Guia Completo
- Instrução Break em C#: Como e Quando Usar
- Dominando a Instrução Continue em C#: Como Pular Iterações de Loop Eficazmente
- Dominando a Declaração Pass em Python: Guia Prático
- Dominando Switch-Case em C++: Sintaxe, Uso e Exemplos Práticos
- Dominando a Sintaxe Básica do C: Tokens, Estrutura e Ponto e Vírgula