Article image

VS

Vinicius Santos26/02/2024 23:05
Compartilhe

A Função Switch Case em C#: Simplificando a Lógica de Decisão

  • #C#

Em linguagens de programação como C#, muitas vezes encontramos situações em que precisamos tomar decisões com base no valor de uma variável ou expressão. Uma estrutura de controle fundamental para lidar com essas situações é o switch case. Esta estrutura oferece uma maneira eficiente e elegante de lidar com várias opções de decisão, simplificando o código e tornando-o mais legível.

O que é o switch case?

É uma estrutura de controle de fluxo em C# (e em muitas outras linguagens de programação, como o Java, por exemplo) que permite que um programa escolha entre várias alternativas com base no valor de uma expressão. Em essência, o switch case é uma alternativa mais limpa e organizada aos blocos if-else aninhados.

A sintaxe básica do switch case em C# é a seguinte:

switch (expressao)
{
  case valor1:
      // Código a ser executado se a expressão for igual a valor1
      break;
  case valor2:
      // Código a ser executado se a expressão for igual a valor2
      break;
  // Outros casos possíveis
  default:
      // Código a ser executado se nenhum dos casos anteriores for correspondido
      break;
}

O funcionamento do switch é bem simples:

  • A expressão é avaliada.
  • Cada case representa um possível valor de avaliação.
  • Se o valor da expressão corresponder com o case, o código dentro do case é executado.
  • Use-se o break para finalizar o case.
  • O default é um caso opcional e é executado se nenhum case coincidir.

Exemplo de aplicação - Calculadora simples:

double num1 = 10;
double num2 = 5;
char operador = '+';
double resultado;


switch (operador)
{
  case '+':
      resultado = num1 + num2;
      break;
  case '-':
      resultado = num1 - num2;
      break;
  case '*':
      resultado = num1 * num2;
      break;
  case '/':
      resultado = num1 / num2;
      break;
  default:
      Console.WriteLine("Operador inválido");
      return;
}


Console.WriteLine($"Resultado: {resultado}");

Este pode ser um exemplo bem simples da aplicação da função, podemos observar que no inicio dó código temos o variavel operador definida com o valor '+'. Desse modo ao executar o switch, entrará na case '+' e executará a operação de soma. Onde somará o valor de num1 + num2, originando o resultado:

Resultado: 15

Do mesmo modo que o valor da operação foi aplicado como '+', o mesmo poderia receber qualquer valor de operação que está dentro dos case ('+', '-', '*', '/'). Caso o valor não for um dos quatro valores esperados, será executado o defaut, que retornará no console:

Operador inválido

Vale ressaltar que o valor do operador não precisa ser definido na váriavel pelo código, pode ser lida pelo teclado durante a execução do código, e os valores dos cases não precisam ser um operador utilizando o char, podem ser valores double ou int por exemplo.

Exemplo de aplicação - Dia da semana:

using System;


class Program
{
  static void Main()
  {
      Console.WriteLine("Digite o número do dia da semana (1 para Domingo, 2 para Segunda-feira, etc.):");
      
      // Lê o dia da semana digitado pelo usuário
      int dia;
      bool entradaValida = int.TryParse(Console.ReadLine(), out dia);


      // Verifica se a entrada é válida
      if (entradaValida)
      {
          string nomeDia;


          // Utiliza a estrutura switch-case para determinar o nome do dia correspondente
          switch (dia)
          {
              case 1:
                  nomeDia = "Domingo";
                  break;
              case 2:
                  nomeDia = "Segunda-feira";
                  break;
              case 3:
                  nomeDia = "Terça-feira";
                  break;
              case 4:
                  nomeDia = "Quarta-feira";
                  break;
              case 5:
                  nomeDia = "Quinta-feira";
                  break;
              case 6:
                  nomeDia = "Sexta-feira";
                  break;
              case 7:
                  nomeDia = "Sábado";
                  break;
              default:
                  nomeDia = "Dia inválido";
                  break;
          }


          Console.WriteLine($"O dia é {nomeDia}");
      }
      else
      {
          Console.WriteLine("Entrada inválida. Por favor, digite um número válido para o dia da semana.");
      }
  }
}

Como citado anteriormente, nesse segundo exemplo o valor de entrada é um int que é lido na execução do código e entrando dentro do switch, com a utilização dos cases será definido qual é o sia da semana, e caso digitar um valor diferente do esperado será retornado que o "Dia é inválido", e caso o valor seja inválido, será retornado que a "Entrada inválida. Por favor, digite um número válido para o dia da semana".

Conclusão:

A função switch case em C# oferece uma maneira eficiente e estruturada de lidar com múltiplas opções de decisão. É especialmente útil quando há uma série de valores possíveis para uma variável ou expressão. Ao usar o a função, os programadores podem escrever código mais limpo, legível e fácil de manter. No entanto, é importante lembrar de incluir a instrução break em cada caso e considerar o caso padrão (defaut) para lidar com valores não previstos.

Para mais informações sobre switch case em C# e todo o resto da documentação, você pode acessar o link: https://learn.microsoft.com/pt-br/dotnet/csharp/ .

Compartilhe
Comentários (2)

VS

Vinicius Santos - 27/02/2024 14:30

Opa, é muito legal saber que eu pude ajudar pelo menos uma pessoa com o meu conteúdo. Obrigado pelo feedback Guilherme!!

Guilherme Ramires
Guilherme Ramires - 27/02/2024 12:05

Maravilha, adoro usar o switch case mas não sabia fazer em C#, valew!