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 default
bloco 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 break
declaraçã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 Vowel
e 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.