Article image
Michele Lopes
Michele Lopes23/02/2024 10:12
Compartilhe

Switch case e analogias de café: uma combinação perfeita

  • #C#

Você sabe como utilizar o switch case?

Pegue seu café e venha aprender neste artigo! ☕

O bloco switch-case é uma estrutura de condição, ela permite que o código execute diferentes blocos com base em uma comparação de valores. Essa instrução é uma alternativa ao if... else if, especialmente quando há várias condições a serem avaliadas, mas quais são as vantagens de usar switch case ao invés de if... else if?

Vantagens em usar switch:

  • torna o código mais legível, pois agrupa todas as comparações em um único bloco;
  • facilita a compreensão do fluxo de controle do programa;
  • o código se torna mais limpo e fácil de manter, especialmente em casos com muitas alternativas.

Importante! ⚠️

Diferente das instruções if else if a instrução switch não avalia uma expressão booleana que retorna true ou false, mas avalia o valor da variável ou expressão da instrução switch.

Instrução Switch - Sintaxe

image

Switch (variável/expressão): inicia-se com a palavra switch, que avalia o valor de uma variável ou expressão

Dentro do bloco definido por chaves, o valor da variável/expressão é comparado com os valores de cada case e, se houver uma correspondência, o bloco de código associado ao case é executado. 

Break: instrução usada no final de cada case para impedir que o programa continue. Se não for declarado, os códigos definidos dentro dos cases subsequentes serão executados. 

Se nenhum dos cases atender ou corresponder ao valor da variável avaliada pela instrução switch, o código definido dentro do bloco default será executado. 

Default: usado para definir um fluxo alternativo para as situações em que o valor contido no switch não seja atendido por nenhum dos cases especificados (equivalente ao bloco else). 

Fluxograma Switch

image

Agora que você está por dentro, é hora de deixar nosso café entrar em ação... Hora dos exemplos!

Abriu uma nova cafeteria na sua cidade e você, como um bom amante de cafés, não podia deixar de experimentar. Ao chegar, a atendente lhe oferece a oportunidade de conhecer os mais populares: Espresso, Latte e Cappuccino. Ela lhe entrega um cardápio digital, isso parece estar ficando popular hoje em dia!

image

Com o cardápio em mãos, é assim que ele funcionaria:

image

Utilizando o exemplo acima em C#:

image

Executar o mesmo código para valores diferentes

Observe a imagem abaixo:

image

Temos dois blocos de código.

  • O primeiro será executado caso o valor do switch for igual a valor1, valor2 ou valor3.
  • O segundo será executado caso o valor do switch for igual a valor4, valor5 ou valor6.

Vamos voltar para nosso café para ver um exemplo? 

image

Neste exemplo, as opções 1, 2 e 3 correspondem ao café preto, que pode ser espresso, americano ou filtrado, e as opções 4, 5 e 6 correspondem ao café com leite, que pode ser latte, macchiato ou mocha.

Instrução Switch aninhada

Uma instrução switch dentro de outra instrução switch permite que você lide com diferentes condições em diferentes níveis, tornando seu código mais modular e organizado.

image

O switch aninhado é útil quando você precisa tomar decisões complexas com base em várias condições. Por exemplo, você pode ter um switch externo que determina o tipo de bebida (café, chá, suco) e, dentro de cada case desse switch, um switch interno que determina diferentes opções para cada tipo de bebida (por exemplo, diferentes tipos de café ou chá).

Exemplo:

image

O uso de switch aninhado pode tornar seu código mais legível, no entanto, é importante manter o código organizado e evitar aninhamentos excessivos, pois isso pode tornar o código difícil de entender e dar manutenção.

Conclusão

O switch case é ideal para quando você tem muitas opções, como um cardápio de cafeteria completo.

Se você só tem algumas opções, o if...else if pode ser suficiente.

Documentação completa 📃

https://learn.microsoft.com/pt-br/dotnet/csharp/language-reference/statements/selection-statements#the-switch-statement

Compartilhe
Comentários (0)