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.
Curso relacionado: O que é C#?
Como utilizar a estrutura condicional Switch/Case do C#
Neste documento apresentamos como criar estruturas de condição utilizando o switch/case.
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;
}
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.