Instrução switch C # (com exemplos)

Neste artigo, aprenderemos sobre a instrução switch em C # e como usá-los com exemplos.

A instrução switch pode ser usada para substituir a instrução if… else if em C #. A vantagem de usar switch over if… else if instrução é que os códigos ficarão muito mais limpos e legíveis com switch.

A sintaxe da instrução switch é:

 switch (variável / expressão) (caso valor1: // Instruções executadas se expressão (ou variável) = valor1 quebra; caso valor2: // Instruções executadas se expressão (ou variável) = valor1 quebra;……………… padrão: / / Instruções executadas se nenhum caso corresponder) 

A instrução switch avalia a expressão (ou variável) e compara seu valor com os valores (ou expressão) de cada caso (valor1, valor2, …). Quando ele encontra o valor correspondente, as instruções dentro desse caso são executadas.

Mas, se nenhum dos casos acima corresponder à expressão, as instruções dentro do defaultbloco são executadas. A instrução padrão no final do switch é semelhante ao bloco else na instrução if else.

No entanto, um problema com a instrução switch é que, quando o valor correspondente é encontrado, ela executa todas as instruções posteriores até o final do bloco switch.

Para evitar isso, usamos breakdeclaração no final de cada caso. A instrução break impede que o programa execute instruções não correspondentes, encerrando a execução da instrução switch.

Para saber mais sobre a instrução break, visite a instrução break do C #.

Exemplo 1: Instrução switch C #

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': Console.WriteLine("Vowel"); break; case 'e': Console.WriteLine("Vowel"); break; case 'i': Console.WriteLine("Vowel"); break; case 'o': Console.WriteLine("Vowel"); break; case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

Quando executamos o programa, a saída será:

 Insira um alfabeto X Não é uma vogal 

Neste exemplo, o usuário é solicitado a inserir um alfabeto. O alfabeto é convertido em minúsculas usando o ToLower()método se estiver em maiúsculas.

Em seguida, a instrução switch verifica se o alfabeto inserido pelo usuário é algum deles a, e, i, o or u.

Se um dos casos corresponder, Vowelé impresso, caso contrário, o controle vai para o bloco padrão e Not a vowelé impresso como saída.

Como a saída de todas as vogais é a mesma, podemos juntar os casos como:

Exemplo 2: instrução C # switch com casos agrupados

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': case 'e': case 'i': case 'o': case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

A saída de ambos os programas é a mesma. No programa acima, todas as vogais imprimem a saída Vowele quebras da instrução switch.

Embora a instrução switch faça o código parecer mais limpo do que a instrução if… else if, switch está restrito a trabalhar com tipos de dados limitados. A instrução switch em C # só funciona com:

  • Tipos de dados primitivos: bool, char e integral type
  • Tipos enumerados (Enum)
  • Classe String
  • Tipos anuláveis ​​dos tipos de dados acima

Exemplo 3: Programa de calculadora simples usando a instrução switch C #

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char op; double first, second, result; Console.Write("Enter first number: "); first = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter second number: "); second = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter operator (+, -, *, /): "); op = (char)Console.Read(); switch(op) ( case '+': result = first + second; Console.WriteLine("(0) + (1) = (2)", first, second, result); break; case '-': result = first - second; Console.WriteLine("(0) - (1) = (2)", first, second, result); break; case '*': result = first * second; Console.WriteLine("(0) * (1) = (2)", first, second, result); break; case '/': result = first / second; Console.WriteLine("(0) / (1) = (2)", first, second, result); break; default: Console.WriteLine("Invalid Operator"); break; ) ) ) ) 

Quando executamos o programa, a saída será:

 Insira o primeiro número: -13,11 Insira o segundo número: 2,41 Insira o operador (+, -, *, /): * -13,11 * 2,41 = -31,5951 

O programa acima usa dois operandos e um operador como entrada do usuário e executa a operação com base no operador.

As entradas são obtidas do usuário usando o método ReadLine()e Read(). Para saber mais, visite C # Basic Input and Output.

O programa usa a instrução switch case para a tomada de decisão. Alternativamente, podemos usar if-else if ladder para realizar a mesma operação.

Artigos interessantes...