A instrução switch permite que você controle de fluxo em C ++

Um programa, por vezes, tem de decidir sobre uma opção a partir de um grande número de possíveis entradas legais. C ++ fornece um mecanismo de controle conveniente para selecionar entre várias opções: o interruptor declaração. o interruptor declaração tem o seguinte formato:

switch (expressão) {case const1: // aqui se expressão == const1break caso const2: // aqui se expressão == const2break caso const3: // repetir tão frequentemente como você gosta // aqui se expressão == const3break-default: // aqui se nenhum dos outros casos corresponder}

Ao encontrar a interruptor declaração, C ++ avalia expressão. Em seguida, passa o controlo para o caso com o mesmo valor expressão. Controlo continua a partir daí para o pausa declaração, que transfere o controle para o } no final de interruptor declaração. Se nenhum dos casos coincidir, o controlo passa para o caso padrão.

O caso padrão é opcional. Se a expressão não corresponde a nenhum caso e nenhum caso padrão é fornecido, o controle passa imediatamente para o }.

Considere o seguinte trecho de código de exemplo:

int Nmonth-cout lt; lt; "Digite o número do mês:" CIN II-III >> Nmonth-switch (Nmonth) {case 1: cout lt; lt; "É janeiro" lt; lt; endl-break-case 2: cout lt; lt; "É fevereiro" lt; lt; endl - break-case 3: cout lt; lt; "É March" lt; lt; endl - break-case 4: cout lt; lt; "É Abril" lt; lt; endl - quebra-case 5: cout lt; lt; "É Maio" lt; lt; endl - break-caso 6: cout lt; lt; "É de junho" lt; lt; endl - break-caso 7: cout lt; lt; "É de julho" lt; lt; endl - break-caso 8: cout lt; lt; "É agosto" lt; lt; endl - break-caso 9: cout lt; lt; "É setembro" lt; lt; endl - break-caso 10: cout lt; lt; "É outubro" lt; lt; endl - break-caso 11: cout lt; lt; "É de novembro" lt; lt; endl - break-caso 12: cout lt; lt; "É December" lt; lt; endl - break-padrão: cout lt; lt; "Isso não é um mês válido" lt; lt; endl--}

Você obtém o seguinte resultado do programa quando introduzir um valor de 3:

Digite o número do mês: 3É MarchPress Enter para continuar. . .

A figura mostra como o controle fluiu através do interruptor declaração para gerar o resultado anterior do marcha.

image0.jpg

UMA interruptor declaração não é como uma série de E se declarações. Por exemplo, apenas números inteiros ou caracteres constantes são permitidas após o caso palavra-chave (que é expressões que podem ser completamente avaliadas em tempo de compilação). Você não pode fornecer uma expressão tempo de execução após um caso. Assim, o seguinte não é legal:

// casos não podem ser Expressions- o // seguir não é legal para m declarado como um intswitch (n) {case m: cout lt; lt; "N é igual a m" lt; lt; -Endl-break caso 2 * m: cout lt; lt; "N é igual a 2m" lt; lt; -Endl-break caso 3 * m: cout lt; lt; "N é igual a 3m" lt; lt; endl-}

Cada um dos casos deve ter um valor em tempo de compilação. O valor de m Não se sabe até que o programa é executado.

Na verdade, o padrão C ++ 2011 introduz um tipo de expressão constante que pode ser usado como o destino de uma instrução caso.

menu