C#: Switch/Case

Nesta documentação você aprenderá a utilizar a estrutura condicional Switch/Case da linguagem C#.

Aprender a criar estruturas de condição é fundamental para programar a lógica de um sistema. Essas estruturas permitem a execução de diferentes linhas de código (diferentes fluxos de execução) a partir da avaliação de uma condição. Na linguagem C# temos dois recursos com esse propósito: if/else e switch/case.

Como utilizar a estrutura condicional Switch/Case do C#

Neste documento apresentamos como criar estruturas de condição utilizando o switch/case.

Tópicos

Switch/Case
Default
Exemplo prático

Switch/Case

Switch/case é uma estrutura de condição que define o código a ser executado com base em uma comparação de valores.

Para que isso fique mais claro, vejamos a sintaxe do switch/case:

switch (variável ou valor) { case valor1: // código 1 break; case valor2: // código 2 break; }

Na linha 1, em switch (variável ou valor), definimos a variável ou valor que desejamos comparar. Na linha 3, informamos que se o valor declarado neste case for igual ao contido no switch, código 1 será executado. O mesmo comportamento se aplica ao segundo case. Ademais, caso o valor contido no switch não seja atendido em uma das condições, nenhum bloco será executado.

E o comando break? O comando break é utilizado para especificar a última linha de código a ser executada dentro da condição. Se não declarado, os códigos implementados dentro dos cases subsequentes serão executados.

Caso deseje executar o mesmo código para valores diferentes, você pode programar o switch/case da seguinte forma:

switch (variável ou valor) { case valor1: case valor2: case valor3: // código 1 break; case valor4: case valor5: case valor6: // código 2 break; }

Neste caso, declaramos dois blocos de código. O primeiro (código 1) será executado caso o valor do switch seja igual a valor1, valor2 ou valor3; e o segundo (código 2), caso o valor seja igual a valor4, valor5 ou valor6.

Default

O operador default é utilizado quando precisamos definir um fluxo alternativo para as situações em que o valor contido no switch não seja atendido por nenhum dos cases especificados.

switch (variável ou valor) { case valor1: // código 1 break; case valor2: // código 2 break; default: // código 3 break; }

Caso o valor do switch não seja igual a um dos valores contidos nos cases, o sistema irá executar o código implementado no bloco default; neste exemplo, o código 3.

Nota: O operador default é opcional e o código nele implementado também deve ser finalizado com a instrução break.

Exemplo prático

Para demonstrar um exemplo de switch/case, considere um programa que informa ao usuário a quantidade de dias de um mês a partir do nome de um mês por ele informado.

Com esse intuito, a partir de uma variável do tipo string (mes) implementamos o código abaixo:

switch (mes) { case "Janeiro": case "Março": case "Maio": case "Julho": case "Agosto": case "Outubro": case "Dezembro": Console.WriteLine("Este mês tem 31 dias"); break; case "Fevereiro": Console.WriteLine("Este mês tem 28 ou 29 dias"); break; default: Console.WriteLine("Este mês tem 30 dias"); break; }
Run

Com esse código informamos ao sistema para comparar o valor da variável mes aos valores contidos nos cases. Se o valor da variável mes for igual a “Janeiro”, “Março”, “Maio”, “Julho”, “Agosto”, “Outubro” ou “Dezembro”, o sistema irá informar que o mês tem 31 dias; se o valor presente em mes for “Fevereiro”, que o mês tem 28 ou 29 dias; e, para qualquer outro valor, que o mês possui 30 dias.

Artigos relacionados