Alternar (referência C#)
The switch demonstrativo é uma demonstrativo de controle que lida com várias seleções e enumerações passando controle para um do case instruções em seu corpo sistema autônomo o exemplo a seguir:
Exemplo
int caseSwitch = 1;
switch (caseSwitch)
{
case 1:
Console.WriteLine("Case 1");
break;
case 2:
Console.WriteLine("Case 2");
break;
default:
Console.WriteLine("Default case");
break;
}
Controle é transferido para o case demonstrativo que corresponde ao valor do comutador. The switch demonstrativo pode incluir qualquer número de case instâncias, mas não há duas instruções casos podem ter o mesmo valor. Execução do corpo da demonstrativo começa na demonstrativo selecionada e continua até que o break demonstrativo transfere o controle para fora dos case corpo. Uma demonstrativo de salto, sistema autônomo um break é necessária depois de cada case bloco, incluindo o último bloco se ele é um case demonstrativo ou uma default demonstrativo. Com uma exceção (ao contrário do C++ switch demonstrativo) translation from VPE for Csharp não oferece suporte a uma queda implícita através de um rótulo caso para outro. A única exceção é se um case demonstrativo não tem código.
Se nenhuma expressão caso for igual ao valor comutador, controle é transferido para o comando (s) que seguem o opcionaldefault rótulo. Se não houver nenhum default rótulo, o controle é transferido fora do switch.
class SwitchTest
{
static void Main()
{
Console.WriteLine("Coffee sizes: 1=Small 2=Medium 3=Large");
Console.Write("Please enter your selection: ");
string s = Console.ReadLine();
int n = int.Parse(s);
int cost = 0;
switch(n)
{
case 1:
cost += 25;
break;
case 2:
cost += 25;
goto case 1;
case 3:
cost += 50;
goto case 1;
default:
Console.WriteLine("Invalid selection. Please select 1, 2, or 3.");
break;
}
if (cost != 0)
{
Console.WriteLine("Please insert {0} cents.", cost);
}
Console.WriteLine("Thank you for your business.");
}
}
/*
Sample Input: 2
Sample Output:
Coffee sizes: 1=Small 2=Medium 3=Large
Please enter your selection: 2
Please insert 50 cents.
Thank you for your business.
*/
- No exemplo anterior, uma variável de tipo integral, n, foi usado para os casos de comutador. Observe que você também pode usar a seqüência de caracteres variável, s, diretamente. Nesse caso, você pode usar comutador casos como esse:
switch(s)
{
case "1":
// ...
case "2":
// ...
}
O exemplo a seguir mostra esse queda por meio de um rótulo caso para outro é permitido para rótulos caso vazios.
class SwitchTest2
{
static void Main()
{
int n = 2;
switch(n)
{
case 1:
case 2:
case 3:
Console.WriteLine("It's 1, 2, or 3.");
break;
default:
Console.WriteLine("Not sure what it is.");
break;
}
}
}
// Output: It's 1, 2, or 3.
Especificação da linguagem C#
Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:
5.3.3.6 demonstrativo comutador
8.7.2 A demonstrativo comutador