En este tutorial, aprenderá a crear la instrucción switch en programación C con la ayuda de un ejemplo.
La declaración de cambio nos permite ejecutar un bloque de código entre muchas alternativas.
Puedes hacer lo mismo con la if… else… if
escalera. Sin embargo, la sintaxis de la switch
declaración es mucho más fácil de leer y escribir.
Sintaxis de switch… case
switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )
¿Cómo funciona la declaración de cambio?
La expresión se evalúa una vez y se compara con los valores de cada etiqueta de caso.
- Si hay una coincidencia, se ejecutan las declaraciones correspondientes después de la etiqueta coincidente. Por ejemplo, si el valor de la expresión es igual a constante2, las instrucciones posteriores
case constant2:
se ejecutan hasta quebreak
se encuentra. - Si no hay coincidencia, se ejecutan las declaraciones predeterminadas.
Si no lo usamos break
, se ejecutan todas las declaraciones posteriores a la etiqueta correspondiente.
Por cierto, la default
cláusula dentro de la switch
declaración es opcional.
cambiar diagrama de flujo de declaración
Ejemplo: calculadora simple
// 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; )
Salida
Ingrese un operador (+, -, *,): - Ingrese dos operandos: 32.5 12.4 32.5 - 12.4 = 20.1
El operador - introducido por el usuario se almacena en la variable de operador. Y, dos operandos 32.5 y 12.4 se almacenan en las variables n1 y n2 respectivamente.
Dado que el operador es -
, el control del programa salta a
printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);
Finalmente, la sentencia break termina la switch
sentencia.