Declaraciones de casos de interruptores de C

C Switch Case Statements



Una declaración de cambio, o simplemente una declaración de caso, es un mecanismo de flujo de control que determina la ejecución de un programa en función del valor de una variable o expresión.

El uso de una declaración de cambio le permite probar varias condiciones y solo ejecutar un bloque específico si la condición es verdadera. Aunque funciona de manera similar a una instrucción if… else if… .else, la sintaxis es más simple y fácil de leer y administrar.







Este tutorial se centra en mostrarle cómo crear y trabajar con sentencias de cambio en la programación C.



Uso básico

La declaración de cambio es fácil de implementar. La sintaxis general es la que se muestra a continuación:



cambiar (expr) {
casevar1:
// código
rotura;
casevar2:
//código
rotura;
casevar3:
// código
rotura;
casevarN:
// código
rotura;

….
….
defecto:
//código
}

Cómo funciona

La sentencia switch implementa una lógica simple para evaluar cada uno de los bloques de casos.





Comienza evaluando la expresión dentro del bloque de interruptores. Luego, compara el valor del bloque de interruptores con cada bloque de caso.

Una vez que localiza una coincidencia dentro de uno de los bloques de casos definidos, ejecuta el código dentro de ese bloque hasta que encuentra la palabra clave break.



Si no encuentra una coincidencia en ninguno de los bloques de casos definidos, salta a la declaración predeterminada y ejecuta el código dentro de ella. El bloque predeterminado es opcional y se puede omitir si no se requiere ninguna acción para un escenario que no coincida.

NOTA: Es bueno asegurarse de que cada declaración de caso termine con una declaración de interrupción para evitar que se ejecuten todas las declaraciones posteriores al bloque coincidente.

C Switch Ejemplo de declaración de caso

Ilustremos la declaración de cambio con un ejemplo muy simple:

#incluir

intmain() {
En tdónde= 5;
cambiar (dónde) {
caso3:
printf ('El valor es 3');
rotura;
case4:
printf ('El valor es 4');
rotura;
case5:
printf ('El valor es 5');
rotura;
defecto:
printf ('El valor no es 3, 4 ni 5');
}
retorno0;
}

Si ejecutamos el ejemplo anterior, deberíamos obtener una salida similar a la siguiente:

El valor es5

El siguiente diagrama de flujo ilustra la lógica del programa anterior:

Una declaración de cambio anidada

C le permite tener instrucciones de cambio anidadas dentro de una instrucción de cambio. La declaración de conmutador anidada se vincula al valor del conmutador externo.

Considere el siguiente ejemplo:

#incluir

intmain() {
En tdepartamento= 5;
intaccess_code= 2028;
cambiar (departamento) {
caso 1:
cambiar (código de acceso) {
case2021:
printf ('[+] ¡Código de acceso válido!');
rotura;
defecto:
printf ('[-] ¡Código de acceso inválido!');
}
rotura;
defecto:
printf ('[-] ¡Solo se permite el Departamento 1!');
}
retorno0;
}

En el ejemplo anterior, implementamos dos declaraciones de cambio. La primera verifica si el departamento proporcionado es 1. Si es verdadero, pasa al siguiente bloque de interruptores y busca el código de acceso válido.

Si el valor del departamento no es uno, la ejecución se mueve al bloque predeterminado.

A continuación se muestra la ejecución del código anterior con el código de acceso y departamento correcto e incorrecto.

En el primer ejemplo, tanto el departamento como el código de acceso son correctos; por lo tanto, la ejecución nunca llega a los bloques predeterminados.

En el segundo ejemplo, tanto el departamento como el código de acceso son incorrectos; por lo tanto, la ejecución salta inmediatamente al primer bloque predeterminado.

Directrices para declaraciones de cambio

Las siguientes son pautas rápidas que vale la pena tener en cuenta al crear declaraciones de cambio en C.

  1. Debe pasar una expresión a la palabra clave switch.
  2. Las declaraciones de casos deben verificar valores únicos
  3. Termine cada bloque de caso usando la palabra clave break.
  4. Puede anidar varias declaraciones de cambio.
  5. Puede incluir una declaración predeterminada cuando sea necesaria una acción para casos que no coincidan.

Conclusión

Esta guía lo ha guiado a través de los conceptos básicos de la creación y el uso de sentencias de cambio de C. Las sentencias Switch son útiles cuando tiene casos de decisión complejos que pueden ser difíciles de implementar con la sentencia y if else.