C Switch Case Declarações

C Switch Case Statements



Uma instrução switch - ou simplesmente uma instrução case - é um mecanismo de fluxo de controle que determina a execução de um programa com base no valor de uma variável ou expressão.

Usar uma instrução switch permite que você teste várias condições e execute apenas um bloco específico se a condição for verdadeira. Embora funcione de forma semelhante a uma instrução if… else if… .else, a sintaxe é mais simples e fácil de ler e gerenciar.







Este tutorial se concentra em mostrar como criar e trabalhar com instruções switch em programação C.



Uso Básico

A instrução switch é fácil de implementar. A sintaxe geral é mostrada abaixo:



trocar (expr) {
casevar1:
// código
pausa;
casevar2:
//código
pausa;
casevar3:
// código
pausa;
casevarN:
// código
pausa;
...


predefinição:
//código
}

Como funciona

A instrução switch implementa uma lógica simples para avaliar cada um dos blocos de caso.





Ele começa avaliando a expressão dentro do bloco de switch. Em seguida, ele compara o valor do bloco de switch com cada bloco de caso.

Depois de localizar uma correspondência dentro de um dos blocos de caso definidos, ele executa o código dentro desse bloco até encontrar a palavra-chave break.



Se não encontrar uma correspondência em nenhum dos blocos de caso definidos, ele pula para a instrução padrão e executa o código dentro dela. O bloco padrão é opcional e omitível se não houver ação necessária para um cenário de não correspondência

NOTA: É bom garantir que cada instrução case termine com uma instrução break para evitar que todas as instruções após o bloco correspondente sejam executados.

Exemplo de declaração de caso de mudança C

Vamos ilustrar a instrução switch com um exemplo muito simples:

#incluir

intmain() {
intOnde= 5;
trocar (Onde) {
case3:
printf ('O valor é 3');
pausa;
case4:
printf ('O valor é 4');
pausa;
case 5:
printf ('O valor é 5');
pausa;
predefinição:
printf ('O valor não é 3, 4 nem 5');
}
return0;
}

Se executarmos o exemplo acima, devemos obter uma saída semelhante a esta abaixo:

O valor é5

O diagrama de fluxo a seguir ilustra a lógica do programa acima:

Uma instrução de switch aninhada

C permite que você tenha instruções switch aninhadas dentro de uma instrução switch. A instrução switch aninhada está vinculada ao valor do switch externo.

Considere o seguinte exemplo:

#incluir

intmain() {
intdepartamento= 5;
intaccess_code= 2028;
trocar (departamento) {
caso 1:
trocar (Código de acesso) {
case2021:
printf ('[+] Código de acesso válido!');
pausa;
predefinição:
printf ('[-] Código de Acesso Inválido!');
}
pausa;
predefinição:
printf ('[-] Apenas o Departamento 1 é permitido!');
}
return0;
}

No exemplo acima, implementamos duas instruções switch. O primeiro verifica se o departamento fornecido é 1. Se verdadeiro, ele prossegue para o próximo bloco de comutação e verifica o código de acesso válido.

Se o valor dept não for um, a execução passa para o bloco padrão.

A seguir está a execução do código acima com o departamento e código de acesso corretos e incorretos.

No primeiro exemplo, tanto o departamento quanto o código de acesso estão corretos; assim, a execução nunca atinge os blocos padrão.

No segundo exemplo, o departamento e o código de acesso estão incorretos; portanto, a execução pula imediatamente para o primeiro bloco padrão.

Diretrizes para declarações de switch

A seguir estão orientações rápidas que devem ser observadas ao criar instruções switch em C.

  1. Você deve passar uma expressão para a palavra-chave switch.
  2. As declarações de caso devem verificar os valores únicos
  3. Encerre cada bloco de caso usando a palavra-chave break.
  4. Você pode aninhar várias instruções switch.
  5. Você pode incluir uma instrução padrão quando uma ação for necessária para casos não correspondentes.

Conclusão

Este guia o orientou nas noções básicas de criação e uso de instruções C switch. As instruções switch são úteis quando você tem casos de decisão complexos que podem ser difíceis de implementar com a instrução e if else.