English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Quando você precisa testar três ou mais condições em uma variável, pode usar a instrução switch em vez da instrução if else. Aqui, você vai aprender sobre a instrução switch e como usá-la de forma eficaz em programas C#.
Aqui está a sintaxe geral da instrução switch.
Sintaxe:}
switch(expressão/variável) { case constante-value: //instrução a ser executada; break; padrão: //instrução a ser executada; break; }
A estrutura switch começa com a palavra-chave switch, que contém uma expressão de correspondência ou uma variável dentro de parênteses switch(expressão de correspondência match expression). O resultado dessa expressão ou variável será testado contra as condições case especificadas dentro dos chavetes {}./O valor da variável é igual, execute o caso. A estrutura switch também pode conter um rótulo default opcional. Se nenhum caso for executado, o rótulo default será executado. As palavras-chave break, return ou goto são usadas para sair das condições switch.
O seguinte exemplo demonstra uma estrutura switch simples.
int x = 10; switch (x { caso 5: Console.WriteLine("O valor de x é5"); break; caso 10: Console.WriteLine("O valor de x é10"); break; caso 15: Console.WriteLine("O valor de x é15"); break; padrão: Console.WriteLine("Valor desconhecido"); break; }
O valor de x é10
Acima, a estrutura switch (x) contém uma variável x whose value will be compared with each case o valor do valor5、10e15três situações. Ele também contém o rótulo default, se nenhum valor de caso correspondente ao switch variável/Expressão correspondente, será executado o rótulo. Cada caso começa após : e contém uma instrução a ser executada. O valor de X coincide com o valor do segundo caso10: Correspondência, portanto, o valor de saída é o valor de x10.
A estrutura switch pode conter qualquer expressão não nula que retorne um tipo de valor char, string, bool, int ou enum.
A estrutura switch pode conter uma expressão, cujo resultado será testado para cada caso durante a execução.
int x = 125; switch (x % 2) { case 0: Console.WriteLine($"{x} é par"); break; caso 1: Console.WriteLine($"{x} é ímpar"); break; }
125é ímpar
Os casos switch devem ser valores constantes únicos. Eles podem ser bool, char, string, inteiro, enum ou tipos correspondentes que podem ser null.
Em C# 7Após .0, o caso switch pode conter valores não únicos. Neste caso, será executado o primeiro caso correspondente.
Considere o seguinte exemplo simples de estrutura switch.
string statementType = "switch"; switch (statementType) { case "if.else": Console.WriteLine("instrução if...else"); break; case "ternary": Console.WriteLine("Operador ternário"); break; case "switch": Console.WriteLine("instrução switch"); break; }
instrução switch
É possível combinar vários cases para executar a mesma instrução.
int x = 5; switch (x { caso 1: Console.WriteLine("x = ", 1"); break; caso 2: Console.WriteLine("x = ", 2"); break; caso 4: caso 5: Console.WriteLine("x = ", 4 ou x = 5"); break; padrão: Console.WriteLine("x > ", 5"); break; }
Cada caso deve sair explicitamente usando break, return, goto ou outra forma, garantindo que o controle do programa saia de um caso e não entre no caso padrão.
A seguir, o uso da palavra-chave return.
void Main(string[] args) { int x = 125; Console.Write( estáImpar(x)? "Valor par" : "Valor ímpar"); } bool estáImpar(int i, int j) { switch (x % 2) { case 0: return true; caso 1: return false; padrão: return false; } return false; }
Valor ímpar
A ausência de instruções break, return ou goto, ou casos de switch com valores constantes iguais, gerará um erro de compilação.
int x = 1; switch (x { case 0: Console.WriteLine($"{x} é um valor par"); break; caso 1: Console.WriteLine($"{x} é um valor ímpar"); break; caso 1: // Erro-O controle não pode sair de um rótulo case(" case 1:)ir para outro rótulo case Console.WriteLine($"{x} é um valor ímpar"); padrão: Console.WriteLine($"{x} é um valor ímpar"); break; }
Uma estrutura switch pode ser usada dentro de outra estrutura switch.
int j = 5; switch (j { caso 5: Console.WriteLine(5); switch (j - 1) { caso 4: Console.WriteLine(4); switch (j - 2) { caso 3: Console.WriteLine(3); break; } break; } break; caso 10: Console.WriteLine(10); break; caso 15: Console.WriteLine(15); break; padrão: Console.WriteLine(100); break; }
5 4 3
A sentença switch é uma substituição para a sentença if else.
A sentença switch testa a expressão de correspondência de um conjunto de constantes especificadas para case./Variável.
Para sair do case, a sentença switch deve conter as palavras-chave break, return ou goto.
O switch pode conter um rótulo opcional default, que será executado quando nenhum case for executado.
O compilador do C# fornecerá erros sobre a falta de :, valores constantes e sairá do case.
Do C#7A partir de .0, a condição do switch pode conter valores não únicos. Neste caso, será executada a primeira situação correspondente.