Compartilhar via


Alternar instrução (C)

O switch e case instruções ajuda controle condicional e ramificações operações complexas.O switch instrução transfere o controle para uma instrução em seu corpo.

Sintaxe

  • instrução de seleção:
    **Alternar (expressão)**instrução

  • instrução rotulada:
    Caso expressão de constante : instrução

    padrão: instrução

Passa o controle para a instrução cuja caseexpressão de constante corresponde ao valor de Alternar (expressão).   O switch instrução pode incluir qualquer número de case instâncias, mas não há duas constantes casos dentro do mesmo switch instrução pode ter o mesmo valor.Execução do corpo da instrução começa com a instrução selecionada e prosseguirá até o final do corpo ou até que uma quebra instrução transfere o controle fora do corpo.

Usar o switch instrução normalmente ter esta aparência:

switch( expressão )

{

   declarações 

   .

   .

   .

   Caso expressão de constante : 

      instruções executadas se a expressão for igual a 

      valor dessa expressão de constante 

      .

      .

      .

      quebra. 

   padrão:

      instruções executadas se a expressão não é igual a 

      qualquer expressão de constante case 

}

Você pode usar o quebra instrução para encerrar o processamento de determinado caso dentro a switch instrução e a ramificação para o fim da switch instrução.Sem quebra, o programa continuará a próxima ocorrência, executar as instruções até que uma quebra ou o final da instrução é alcançado.Em algumas situações, essa continuação pode ser desejável.

O padrão instrução é executada se nenhuma caseexpressão de constante é igual ao valor de Alternar (expressão).   Se o padrão instrução for omitida e nenhum case correspondência for encontrada, nenhuma das afirmações na switch corpo são executados.Pode haver no máximo uma padrão instrução.O padrão instrução não precisa vir no final; ele pode aparecer em qualquer lugar no corpo da switch instrução.A case ou padrão rótulo só pode aparecer dentro de um switch instrução.

O tipo de switchexpressão e caseexpressão de constante deve ser integral.  O valor de cada caseexpressão de constante deve ser exclusivo dentro do corpo de instrução. 

O case e padrão rótulos da switch o corpo de instrução são significativos apenas no teste inicial que determina onde a execução começa no corpo da instrução.Declarações de chave podem ser aninhadas.Quaisquer variáveis estáticas são inicializados antes de executar em qualquer switch instruções.

ObservaçãoObservação

Declarações podem aparecer no topo da formação de instrução composta de switch corpo, mas inicializações incluídas nas declarações não são realizadas.O switch instrução transfere o controle diretamente para uma instrução executável dentro do corpo, ignorando as linhas que contêm inicializações.

Os exemplos a seguir ilustram switch instruções:

switch( c ) 
{
    case 'A':
        capa++;
    case 'a':
        lettera++;
    default :
        total++;
}

Todas as três instruções da switch corpo neste exemplo são executadas se c é igual a 'A' desde que uma quebra a instrução não aparecer antes caso a seguir.Controle de execução é transferido para a primeira instrução (capa++;) e continua na ordem pelo resto do corpo.If c is equal to 'a', lettera and total are incremented.Somente total é incrementado se c não é igual a 'A' ou 'a'.

switch( i ) 
{
    case -1:
        n++;
        break;
    case 0 :
        z++;
        break;
    case 1 :
        p++;
        break;
}

Neste exemplo, um quebra instrução segue cada instrução da switch corpo.O quebra instrução força uma saída no corpo de instrução, depois que uma instrução é executada.Se i é igual a – 1, somente n é incrementado.O quebra após a instrução n++; faz com que o controle de execução passar fora do corpo da instrução, ignorando as instruções restantes.Da mesma forma, se i é igual a 0, apenas z é aumentada. Se i é igual a 1, somente p é incrementado.O final quebra a declaração não é estritamente necessária, uma vez que passa o controle fora do corpo no final da instrução composta, mas ele está incluído para manter a consistência.

Uma única instrução pode executar várias case rótulos, como mostra o exemplo a seguir:

case 'a' :
case 'b' :
case 'c' :
case 'd' :
case 'e' :
case 'f' :  hexcvt(c);

Neste exemplo, se expressão de constante é igual a qualquer letra entre 'a' e 'f', o hexcvt função é chamada.

Específicos do Microsoft

Microsoft c não limita o número de valores em um switch instrução.O número é limitado apenas pela memória disponível.ANSI c requer pelo menos 257 rótulos case ser permitido em um switch instrução.

O padrão Microsoft C é que as extensões do Microsoft estão habilitadas.Use a opção de compilador /Za para desativar essas extensões.

Específicos do Microsoft final

Consulte também

Referência

Alternar instrução (C++)