switch…caso en C (Sentencia Switch en C) con ejemplos
¿Qué es la instrucción Switch en C?
Declaración de cambio en C prueba el valor de una variable y lo compara con múltiples casos. Una vez que se encuentra la coincidencia de caso, se ejecuta un bloque de declaraciones asociadas con ese caso en particular.
Cada caso en un bloque de un interruptor tiene un nombre/número diferente que se denomina identificador. El valor proporcionado por el usuario se compara con todos los casos dentro del bloque de cambio hasta que se encuentra la coincidencia.
Si NO se encuentra una coincidencia de mayúsculas y minúsculas, se ejecuta la instrucción predeterminada y el control sale del bloque de interruptores.
En este tutorial, aprenderá-
- ¿Qué es la instrucción Switch en C?
- Sintaxis de mayúsculas y minúsculas
- Diagrama de flujo de declaración de cambio
- Ejemplo de caso de cambio en C
- Interruptor anidado en C
- ¿Por qué necesitamos una carcasa para Switch?
- Reglas para la sentencia switch
Sintaxis de mayúsculas y minúsculas
Una sintaxis general de cómo se implementa switch-case en un programa 'C' es la siguiente:
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;
- La expresión puede ser una expresión entera o una expresión de caracteres.
- Value-1, 2, n son etiquetas de casos que se utilizan para identificar cada caso individualmente. Recuerde que las etiquetas de los casos no deben ser las mismas, ya que pueden crear un problema al ejecutar un programa. Supongamos que tenemos dos casos con la misma etiqueta como '1'. Luego, mientras ejecuta el programa, el caso que aparece primero se ejecutará aunque desee que el programa ejecute un segundo caso. Esto crea problemas en el programa y no proporciona el resultado deseado.
- Las etiquetas de casos siempre terminan con dos puntos ( :). Cada uno de estos casos está asociado a un bloque.
- Un bloque no es más que varias declaraciones que se agrupan para un caso particular.
- Cada vez que se ejecuta el cambio, el valor de expresión-prueba se compara con todos los casos que hemos definido dentro del cambio. Supongamos que la expresión de prueba contiene el valor 4. Este valor se compara con todos los casos hasta el caso cuya etiqueta cuatro se encuentra en el programa. Tan pronto como se encuentra un caso, se ejecuta el bloque de sentencias asociado con ese caso en particular y el control sale del interruptor.
- La palabra clave break en cada caso indica el final de un caso particular. Si no ponemos el salto en cada caso, aunque se ejecute el caso específico, el interruptor en C seguirá ejecutando todos los casos hasta llegar al final. Esto no debería suceder; por lo tanto, siempre tenemos que poner la palabra clave break en cada caso. Break terminará el caso una vez que se ejecute y el control se caerá del interruptor.
- El caso predeterminado es opcional. Siempre que el valor de test-expression no coincida con ninguno de los casos dentro del conmutador, se ejecutará el valor predeterminado. De lo contrario, no es necesario escribir por defecto en el conmutador.
- Una vez que se ejecuta el cambio, el control irá a la declaración-x y la ejecución de un programa continuará.
Diagrama de flujo de declaración de cambio
El siguiente diagrama ilustra cómo se selecciona un caso en el caso del interruptor:
Ejemplo de cambio de caso en C
El siguiente programa ilustra el uso del interruptor:
#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; }
Salida:
Value is 8
- En el programa dado hemos explicado inicializó una variable num con valor 8.
- Se utiliza una construcción de interruptor para comparar el valor almacenado en la variable num y ejecutar el bloque de instrucciones asociado con el caso coincidente.
- En este programa, dado que el valor almacenado en la variable num es ocho, un interruptor ejecutará el caso cuya etiqueta de caso sea 8. Después de ejecutar el caso, el control se saldrá del interruptor y el programa terminará con el resultado exitoso imprimiendo el valor en la pantalla de salida.
Intente cambiar el valor de la variable num y observe el cambio en la salida.
Por ejemplo, consideramos el siguiente programa que por defecto:
#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");}}
Salida:
Other programming language
Cuando trabaja con el caso del interruptor en C, agrupa varios casos con etiquetas únicas. Debe introducir una declaración de ruptura en cada caso para bifurcarse al final de una declaración de cambio.
El caso predeterminado opcional se ejecuta cuando no se realizan otras coincidencias.
Consideramos la siguiente declaración de cambio:
#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");}}
Salida:
Four, Five, or Six.
Interruptor anidado en C
En C, podemos tener un interruptor interno incrustado en un interruptor externo. Además, las constantes de mayúsculas y minúsculas del interruptor interno y externo pueden tener valores comunes y sin conflictos.
Consideramos el siguiente programa en el que el usuario debe escribir su propia identificación, si la identificación es válida, le pedirá que ingrese su contraseña, si la contraseña es correcta, el programa imprimirá el nombre del usuario, de lo contrario, el programa imprimirá Incorrecto Contraseña y si la identificación no existe, el programa imprimirá una identificación incorrecta
#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; } }
SALIDA:
Plese Enter Your ID: 500 Enter your password: 000 Welcome Dear Programmer
- En el programa dado, hemos explicado dos variables inicializadas:ID y contraseña
- Se usa una construcción de interruptor externo para comparar el valor ingresado en la ID de variable. Ejecuta el bloque de sentencias asociado con el caso coincidente (cuando ID==500).
- Si la declaración de bloque se ejecuta con el caso coincidente, se usa un interruptor interno para comparar los valores ingresados en la contraseña variable y ejecutar las declaraciones vinculadas con el caso coincidente (cuando la contraseña ==000).
- De lo contrario, el caso del interruptor activará el caso predeterminado e imprimirá el texto apropiado con respecto al esquema del programa.
¿Por qué necesitamos una carcasa para Switch?
Existe un problema potencial con la declaración if-else, que es que la complejidad del programa aumenta cada vez que aumenta el número de caminos alternativos. Si usa múltiples construcciones if-else en el programa, un programa puede volverse difícil de leer y comprender. A veces, incluso puede confundir al desarrollador que escribió el programa.
La solución a este problema es la sentencia switch.
Reglas para la sentencia switch
- Una expresión siempre debe ejecutarse en un resultado.
- Las etiquetas de casos deben ser constantes y únicas.
- Las etiquetas de los casos deben terminar con dos puntos ( :).
- Debe estar presente una palabra clave de ruptura en cada caso.
- Solo puede haber una etiqueta predeterminada.
- Podemos anidar varias sentencias switch.
Resumen
- Un interruptor es una construcción de toma de decisiones en 'C.'
- Un interruptor se usa en un programa en el que se toman decisiones múltiples.
- Un interruptor debe contener una expresión de prueba ejecutable.
- Cada caso debe incluir una palabra clave de ruptura.
- La etiqueta del caso debe ser constante y única.
- El valor predeterminado es opcional.
- Se pueden anidar varias sentencias de cambio una dentro de otra.
Lenguaje C
- Circuito con un interruptor
- Declaración de cambio de C#
- C++ do...while bucle con ejemplos
- Declaración de caso de cambio de C ++ con EJEMPLO
- Punteros de C++ con ejemplos
- Sobrecarga de operadores de C++ con ejemplos
- Funciones de C++ con ejemplos de programas
- Tutorial de colecciones de C# con ejemplos
- Declaración Python Print():cómo imprimir con ejemplos
- Python String count () con EJEMPLOS
- Función Python round() con EJEMPLOS