English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de linguagem C

Controle de fluxo de linguagem C

Função do C

Array do C

Ponteiro do C

String do C

Estruturas de linguagem C

Arquivos de linguagem C

Outros C

Manual de referência do C

Sentença switch do C

Neste tutorial, você aprenderá a criar uma instrução switch em linguagem C por meio de um exemplo.

O switch nos permite executar um bloco de código entre várias alternativas.

Embora você possa usar if...else..if para executar a mesma operação. No entanto, a sintaxe do switch é mais fácil de ler e escrever.

Sintaxe de switch ... case

switch (expression)
{
    case constant1:
      // Instrução
      break;
    case constant2:
      // Instrução
      break;
    .
    .
    .
    default:
      // Cláusula default
}

Como o switch trabalha?

A expressão (expression) é avaliada uma vez e comparada com cada etiqueta case.

  • Se houver correspondência, execute a instrução após a etiqueta correspondente. Por exemplo, se o valor da expressão for igual a constant2Se houver correspondência, execute a instrução após case constant2As instruções após : até encontrar break.

  • Se não houver correspondência, execute a instrução default (default).

Se não usar break, todas as instruções após a etiqueta correspondente serão executadas.

A propósito, a cláusula default do switch é opcional.

Gráfico de fluxo de switch

Exemplo: Calculador simples

//O programa cria um simples calculador
#include <stdio.h>
int main() {
    char operator;
    double n1, n2;
    printf("Insira um operador (+, -, *, /);
    scanf("%c", &operator);
    printf("Insira dois operandos:");
    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;
        // Nenhum operador correspondente encontrado ( +, -, *, /)
    default:
        printf("Erro! Operador incorreto");
    }
    return 0;
}

Resultado de saída

Insira um operador (+, -, *,): -
Insira dois operandos: 32.5
12.4
32.5 - 12.4 = 20.1

Operador digitado pelo usuário (-Armazenado na variável operator. Além disso, dois operandos32.5e}}12.4respectivamente armazenados nas variáveis n1e n2no.

Devido ao fato de que o operator é -Portanto, o controle do programa salta para a sentença

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

Por fim,Sentença breakTerminar essa sentença switch, operação concluída.