Partilhar via


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

Consulte também

Conceitos

Guia de Programação C#

Referência

Palavras-chave C#

The Switch instrução

(referência C#) ELSE se- 

Outros recursos

Referência C#