switch…case em C (Instrução Switch em C) com exemplos
O que é a instrução Switch em C?
Instrução Switch em C testa o valor de uma variável e a compara com vários casos. Uma vez que a correspondência de caso é encontrada, um bloco de instruções associado a esse caso específico é executado.
Cada caso em um bloco de um switch tem um nome/número diferente que é chamado de identificador. O valor fornecido pelo usuário é comparado com todos os casos dentro do bloco switch até que a correspondência seja encontrada.
Se uma correspondência de caso NÃO for encontrada, a instrução padrão será executada e o controle sairá do bloco switch.
Neste tutorial, você aprenderá-
- O que é a instrução Switch em C?
- Sintaxe do caso de comutação
- Fluxograma da declaração de mudança
- Exemplo de caso de comutação em C
- Interruptor aninhado em C
- Por que precisamos de um estojo Switch?
- Regras para a instrução switch
Sintaxe do caso de comutação
Uma sintaxe geral de como o switch-case é implementado em um programa 'C' é a seguinte:
switch( expression ) { case value-1: Block-1; Break; case value-2: Block-2; Break; case value-n: Block-n; Break; default: Block-1; Break; } Statement-x;
- A expressão pode ser uma expressão inteira ou uma expressão de caractere.
- Value-1, 2, n são rótulos de caso usados para identificar cada caso individualmente. Lembre-se de que os rótulos de caso não devem ser iguais, pois podem criar um problema durante a execução de um programa. Suponha que temos dois casos com o mesmo rótulo de '1'. Então, durante a execução do programa, o caso que aparecer primeiro será executado mesmo que você queira que o programa execute um segundo caso. Isso cria problemas no programa e não fornece a saída desejada.
- Os rótulos de maiúsculas e minúsculas sempre terminam com dois pontos ( :). Cada um desses casos está associado a um bloco.
- Um bloco nada mais é do que várias instruções agrupadas para um caso específico.
- Sempre que o switch é executado, o valor da expressão-teste é comparado com todos os casos que definimos dentro do switch. Suponha que a expressão de teste contenha o valor 4. Este valor é comparado com todos os casos até o caso cujo rótulo quatro é encontrado no programa. Assim que um caso é encontrado, o bloco de instruções associado a esse caso específico é executado e o controle sai do switch.
- A palavra-chave break em cada caso indica o fim de um caso específico. Se não colocarmos a quebra em cada caso, mesmo que o caso específico seja executado, o switch em C continuará a executar todos os casos até que o final seja alcançado. Isso não deve acontecer; portanto, sempre temos que colocar a palavra-chave break em cada caso. Break encerrará o caso assim que for executado e o controle sairá do switch.
- O caso padrão é opcional. Sempre que o valor da expressão-teste não corresponder a nenhum dos casos dentro do switch, o padrão será executado. Caso contrário, não é necessário escrever o padrão no switch.
- Uma vez que o switch é executado, o controle irá para a instrução-x, e a execução de um programa continuará.
Fluxograma da declaração de mudança
O diagrama a seguir ilustra como um caso é selecionado no caso de comutação:

Exemplo de caso de comutação em C
O programa a seguir ilustra o uso do switch:
#include <stdio.h> int main() { int num = 8; switch (num) { case 7: printf("Value is 7"); break; case 8: printf("Value is 8"); break; case 9: printf("Value is 9"); break; default: printf("Out of range"); break; } return 0; }
Saída:
Value is 8
- No programa fornecido, explicamos que inicializou uma variável num com valor 8.
- Uma construção switch é usada para comparar o valor armazenado na variável num e executar o bloco de instruções associado ao case correspondente.
- Neste programa, como o valor armazenado na variável num é oito, um switch executará o case cujo rótulo case é 8. Após executar o case, o controle sairá do switch e o programa será finalizado com o resultado bem-sucedido imprimindo o valor na tela de saída.
Tente alterar o valor da variável num e observe a alteração na saída.
Por exemplo, consideramos o seguinte programa padrão:
#include <stdio.h> int main() { int language = 10; switch (language) { case 1: printf("C#\n"); break; case 2: printf("C\n"); break; case 3: printf("C++\n"); break; default: printf("Other programming language\n");}}
Saída:
Other programming language
Ao trabalhar com caso de comutação em C, você agrupa vários casos com rótulos exclusivos. Você precisa introduzir uma instrução break em cada caso para ramificar no final de uma instrução switch.
O caso padrão opcional é executado quando nenhuma outra correspondência é feita.
Consideramos a seguinte instrução switch:
#include <stdio.h> int main() { int number=5; switch (number) { case 1: case 2: case 3: printf("One, Two, or Three.\n"); break; case 4: case 5: case 6: printf("Four, Five, or Six.\n"); break; default: printf("Greater than Six.\n");}}
Saída:
Four, Five, or Six.
Interruptor aninhado em C
Em C, podemos ter um switch interno embutido em um switch externo. Além disso, as constantes de maiúsculas e minúsculas do switch interno e externo podem ter valores comuns e sem conflitos.
Consideramos o seguinte programa em que o usuário digite seu próprio ID, se o ID for válido pedirá para ele digitar sua senha, se a senha estiver correta o programa imprimirá o nome do usuário, caso contrário, o programa imprimirá Incorreto Senha e se o ID não existir, o programa imprimirá ID incorreto
#include <stdio.h> int main() { int ID = 500; int password = 000; printf("Plese Enter Your ID:\n "); scanf("%d", & ID); switch (ID) { case 500: printf("Enter your password:\n "); scanf("%d", & password); switch (password) { case 000: printf("Welcome Dear Programmer\n"); break; default: printf("incorrect password"); break; } break; default: printf("incorrect ID"); break; } }
SAÍDA:
Plese Enter Your ID: 500 Enter your password: 000 Welcome Dear Programmer
- No programa fornecido, explicamos duas variáveis inicializadas:ID e senha
- Uma construção de chave externa é usada para comparar o valor inserido no ID da variável. Ele executa o bloco de instruções associado ao case correspondente (quando ID==500).
- Se a instrução de bloco for executada com o case correspondente, uma chave interna será usada para comparar os valores inseridos na variável password e executar as instruções vinculadas ao case correspondente (quando password==000).
- Caso contrário, o caso de alternância acionará o caso padrão e imprimirá o texto apropriado referente ao esboço do programa.
Por que precisamos de um estojo para Switch?
Há um problema potencial com a instrução if-else que é a complexidade do programa aumenta sempre que o número de caminhos alternativos aumenta. Se você usar várias construções if-else no programa, um programa pode se tornar difícil de ler e compreender. Às vezes pode até confundir o desenvolvedor que escreveu o programa.
A solução para este problema é a instrução switch.
Regras para a instrução switch
- Uma expressão sempre deve ser executada para um resultado.
- Os rótulos de caso devem ser constantes e exclusivos.
- Os rótulos de maiúsculas e minúsculas devem terminar com dois pontos ( :).
- Uma palavra-chave break deve estar presente em cada caso.
- Só pode haver um rótulo padrão.
- Podemos aninhar várias instruções switch.
Resumo
- Um switch é uma construção de tomada de decisão em 'C.'
- Um switch é usado em um programa em que várias decisões estão envolvidas.
- Um switch deve conter uma expressão de teste executável.
- Cada caso deve incluir uma palavra-chave break.
- O rótulo do caso deve ser constante e exclusivo.
- O padrão é opcional.
- Várias instruções switch podem ser aninhadas umas nas outras.
Linguagem C
- Instrução C# switch
- C++ do… while loop com exemplos
- Instrução C++ Switch Case com EXEMPLO
- Ponteiros C++ com exemplos
- Sobrecarga do operador C++ com exemplos
- Funções C++ com exemplos de programas
- Tutorial de coleções de C# com exemplos
- Instrução Python Print():Como imprimir com exemplos
- Python String count() com EXEMPLOS
- Função Python round() com EXEMPLOS