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

Tutorial básico de lenguaje C

Control de flujo de lenguaje C

Funciones en C

Arreglos en C

Punteros en C

Cadenas de caracteres en C

Estructura de lenguaje C

Archivo de lenguaje C

C Otro

Manual de referencia de C

Sentencia switch en C

En este tutorial, aprenderá a crear instrucciones switch en programación en C a través de un ejemplo.

La instrucción switch nos permite ejecutar uno de varios bloques de código.

Aunque puede usar if...else..if para realizar la misma operación. Sin embargo, la sintaxis de la instrucción switch es más fácil de leer y escribir.

Sintaxis de switch ... case

switch (expresión)
{
    case constante1:
      // Instrucción
      break;
    case constante2:
      // Instrucción
      break;
    .
    .
    .
    default:
      // Instrucción por defecto
}

¿Cómo funciona la instrucción switch?

La expresión (expresión) se evalúa una vez y se compara con cada etiqueta case.

  • Si hay una coincidencia, se ejecuta la instrucción después de la etiqueta coincidente. Por ejemplo, si el valor de la expresión es igual a constante2Entonces se ejecuta case constante2Las instrucciones después de : hasta que se encuentre break.

  • Si no se encuentra una coincidencia, se ejecutará la instrucción default (default).

Si no se utiliza break, se ejecutarán todas las instrucciones después de la etiqueta coincidente.

Por cierto, la cláusula default de la instrucción switch es opcional.

Dibujo de flujo de switch

Ejemplo: Calculador simple

//El programa crea un simple calculador
#include <stdio.h>
int main() {
    char operator;
    double n1, n2;
    printf("Ingrese un operador ( ");+, -, *, /)");
    scanf("%c", &operator);
    printf("Ingrese dos 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;
        // No se ha encontrado ningún operador coincidente ( +, -, *, /)
    default:
        printf("¡Error! Operador incorrecto");
    }
    return 0;
}

Resultado de salida

Ingrese un operador (+, -, *,): -
Ingrese dos operandos: 32.5
12.4
32.5 - 12.4 = 20.1

“Operador ingresado por el usuario (”-“Almacenado en la variable operator. Además32.5y}}12.4se almacenan en la variable n1y n2en.

Debido a que operator es -,por lo tanto, el control del programa se salta a la declaración

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

Finalmente,Sentencia breakTerminar esta sentencia switch, la operación se ha completado.