switch ... caso na programação C

Neste tutorial, você aprenderá a criar a instrução switch na programação C com a ajuda de um exemplo.

A instrução switch nos permite executar um bloco de código entre muitas alternativas.

Você pode fazer a mesma coisa com a if… else… ifescada. No entanto, a sintaxe da switchinstrução é muito mais fácil de ler e escrever.

Sintaxe de switch … case

 switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )

Como funciona a instrução switch?

A expressão é avaliada uma vez e comparada com os valores de cada rótulo de caso.

  • Se houver uma correspondência, as instruções correspondentes após o rótulo correspondente são executadas. Por exemplo, se o valor da expressão for igual a constant2, as instruções after case constant2:são executadas até que breakseja encontrado.
  • Se não houver correspondência, as instruções padrão serão executadas.

Se não usarmos break, todas as instruções após o rótulo correspondente serão executadas.

A propósito, a defaultcláusula dentro da switchinstrução é opcional.

switch Statement Flowchart

Exemplo: Calculadora Simples

 // Program to create a simple calculator #include int main() ( char operator; double n1, n2; printf("Enter an operator (+, -, *, /): "); scanf("%c", &operator); printf("Enter two operands: "); scanf("%lf %lf",&n1, &n2); switch(operator) ( case '+': printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2); break; case '-': printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2); break; case '*': printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2); break; case '/': printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2); break; // operator doesn't match any case constant +, -, *, / default: printf("Error! operator is not correct"); ) return 0; ) 

Resultado

 Insira um operador (+, -, *,): - Insira dois operandos: 32,5 12,4 32,5 - 12,4 = 20,1

O operador - inserido pelo usuário é armazenado na variável do operador. E, dois operandos 32,5 e 12,4 são armazenados nas variáveis ​​n1 e n2 respectivamente.

Uma vez que o operador é -, o controle do programa salta para

 printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);

Finalmente, a instrução break termina a switchinstrução.

Artigos interessantes...