La declaración de cambio en C es una alternativa a la declaración de escalera if-else-if que nos permite ejecutar múltiples operaciones para los diferentes valores posibles de una sola variable llamada variable de cambio. Aquí, podemos definir varias declaraciones en múltiples casos para los diferentes valores de una sola variable.
La sintaxis de la declaración de cambio en lenguaje c se da a continuación:
switch(expression){ case value1: //code to be executed; break; //optional case value2: //code to be executed; break; //optional ...... default: code to be executed if all cases are not matched; }
Reglas para la declaración de cambio en lenguaje C
- El cambiar de expresión debe ser de tipo entero o carácter.
- El valor del caso debe ser un número entero o una constante de carácter.
- El valor del caso solo se puede usar dentro de la declaración de cambio.
- El declaración de ruptura en la caja del interruptor no es necesario. Es opcional. Si no se encuentra ninguna declaración de interrupción en el caso, se ejecutarán todos los casos presentes después del caso coincidente. Es conocido como caer a través el estado de la declaración de cambio de C.
Intentemos entenderlo con ejemplos. Suponemos que existen las siguientes variables.
int x,y,z; char a,b; float f;
Cambio válido | Cambio no válido | Caso válido | Caso no válido |
---|---|---|---|
cambiar(x) | interruptor(f) | caso 3; | caso 2.5; |
cambiar(x>y) | cambiar(x+2.5) | caso 'a'; | caso x; |
interruptor (a+b-2) | caso 1+2; | caso x+2; | |
cambiar(func(x,y)) | caso 'x'>'y'; | caso 1,2,3; |
Diagrama de flujo de la declaración de cambio en C
Funcionamiento de la declaración de caso de cambio
Primero, se evalúa la expresión entera especificada en la declaración de cambio. Luego, este valor se compara uno por uno con los valores constantes dados en los diferentes casos. Si se encuentra una coincidencia, todas las declaraciones especificadas en ese caso se ejecutan junto con todos los casos presentes después de ese caso, incluida la declaración predeterminada. No hay dos casos que puedan tener valores similares. Si el caso coincidente contiene una declaración de interrupción, todos los casos presentes después se omitirán y el control saldrá del conmutador. De lo contrario, se ejecutarán todos los casos siguientes al caso coincidente.
¿Cómo funciona la declaración de cambio de C?
Repasemos el proceso paso a paso de cómo funciona la declaración de cambio en C:
Considera lo siguiente declaración de cambio :
Programa C:
#include int main() { int num = 2; switch (num) { case 1: printf('Value is 1 '); break; case 2: printf('Value is 2 '); break; case 3: printf('Value is 3 '); break; default: printf('Value is not 1, 2, or 3 '); break; } return 0; }
Producción
Value is 2
Proceso paso a paso:
- El cambiar número de variable es evaluado. En este caso, en uno se inicializa con el valor 2 .
- El valor evaluado número (2) se compara con las constantes especificadas en la etiqueta de cada caso dentro del bloque de interruptores .
- El declaración de cambio coincide con el valor evaluado (2) con la constante especificada en el segundo caso (caso 2) . Como hay una coincidencia, el programa salta al bloque de código asociado con la caso coincidente (caso 2) .
- El bloque de código asociado con caso 2 se ejecuta, lo que imprime 'El valor es 2' a la consola.
- El 'romper' La palabra clave está presente en el bloque de código de caso 2 . Como resultado, el programa sale de la declaración de cambio inmediatamente después de ejecutar el bloque de código.
- El control del programa continúa después del declaración de cambio y cualquier declaración posterior a la declaración de cambio son ejecutados. En este caso, no hay declaraciones después del cambio, por lo que el programa finaliza.
- El declaración de cambio evaluó el valor de la número de variable , encontró una coincidencia con el caso 2, ejecutó el bloque de código correspondiente y luego salió del bloque de interruptores debido a la presencia del declaración de 'rotura' .
Ejemplo de una declaración de cambio en C
Veamos un ejemplo simple de una declaración de cambio de lenguaje C.
#include int main(){ int number=0; printf('enter a number:'); scanf('%d',&number); switch(number){ case 10: printf('number is equals to 10'); break; case 50: printf('number is equal to 50'); break; case 100: printf('number is equal to 100'); break; default: printf('number is not equal to 10, 50 or 100'); } return 0; }
Producción
mysql lista todos los usuarios
enter a number:4 number is not equal to 10, 50 or 100 enter a number:50 number is equal to 50
Ejemplo de caso de interruptor 2
#include int main() { int x = 10, y = 5; switch(x>y && x+y>0) { case 1: printf('hi'); break; case 0: printf('bye'); break; default: printf(' Hello bye '); } }
Producción
hi
Palabra clave Break y Default en la declaración Switch
Expliquemos y definamos 'romper' y palabras clave 'predeterminadas' en el contexto de la declaración de cambio, junto con el código de ejemplo y la salida.
1. Romper la palabra clave:
El palabra clave 'romper' se utiliza dentro del bloque de código de cada caso para terminar la declaración de cambio prematuramente. Cuando el programa encuentra un declaración de 'rotura' dentro de un bloque de caja, sale inmediatamente del declaración de cambio , impidiendo la ejecución de bloques de casos posteriores. El declaración de 'rotura' es crucial para evitar declaraciones de cambio' 'caer a través' comportamiento.
Ejemplo:
Tomemos un programa para entender el uso del romper palabra clave Cª.
#include int main() { int num = 3; switch (num) { case 1: printf('Value is 1 '); break; // Exit the switch statement after executing this case block case 2: printf('Value is 2 '); break; // Exit the switch statement after executing this case block case 3: printf('Value is 3 '); break; // Exit the switch statement after executing this case block default: printf('Value is not 1, 2, or 3 '); break; // Exit the switch statement after executing the default case block } return 0; }
Producción
Value is 3
Explicación:
En este ejemplo, el declaración de cambio evalúa el valor de la número de variable (cual es 3 ) y lo combina con caso 3 . El bloque de código asociado con caso 3 se ejecuta, imprimiendo 'El valor es 3' a la consola. El declaración de 'rotura' dentro caso 3 asegura que el programa salga de la declaración de cambio inmediatamente después de ejecutar este bloque de caso, evitando la ejecución de cualquier otro caso.
2. Palabra clave predeterminada:
Cuando ninguno de los constantes de caso coincidir con el expresión evaluada , funciona como un caso general . Si no existe ningún caso coincidente y Existe el caso 'predeterminado' , el bloque de código asociado con el 'por defecto' se ejecuta el caso. A menudo se utiliza para manejar circunstancias en las que ninguna de las situaciones indicadas se aplica a la entrada proporcionada.
Ejemplo:
Tomemos un programa para entender el uso del palabra clave predeterminada Cª.
#include int main() { int num = 5; switch (num) { case 1: printf('Value is 1 '); break; case 2: printf('Value is 2 '); break; case 3: printf('Value is 3 '); break; default: printf('Value is not 1, 2, or 3 '); break; // Exit the switch statement after executing the default case block } return 0; }
Producción
Value is not 1, 2, or 3
Explicación:
En este ejemplo, el declaración de cambio examina el valor de la número de variable (cual es 5 ). Debido a que ningún caso coincide con el número, el programa realiza el bloque de código asociado con el caso 'predeterminado' . El declaración de 'rotura' dentro de caso 'predeterminado' garantiza que el programa salga del declaración de cambio después de ejecutar el 'por defecto' bloque de caso.
Ambos 'romper' y palabras clave 'predeterminadas' desempeñan papeles esenciales en el control del flujo de ejecución dentro de una declaración de cambio. El declaración de 'rotura' ayuda a prevenir el comportamiento de caída, mientras que el caso 'predeterminado' proporciona una manera de manejar casos incomparables.
La declaración de cambio de C es fallida
En lenguaje C, la declaración de cambio no se realiza; significa que si no usa una declaración de interrupción en el caso de cambio, se ejecutarán todos los casos posteriores al caso coincidente.
Intentemos comprender el estado de caída de la declaración de cambio mediante el ejemplo que se proporciona a continuación.
#include int main(){ int number=0; printf('enter a number:'); scanf('%d',&number); switch(number){ case 10: printf('number is equal to 10 '); case 50: printf('number is equal to 50 '); case 100: printf('number is equal to 100 '); default: printf('number is not equal to 10, 50 or 100'); } return 0; }
Producción
enter a number:10 number is equal to 10 number is equal to 50 number is equal to 100 number is not equal to 10, 50 or 100
Producción
enter a number:50 number is equal to 50 number is equal to 100 number is not equal to 10, 50 or 100
Declaración de caso de cambio anidado
Podemos usar tantas declaraciones de cambio como queramos dentro de una declaración de cambio. Este tipo de declaraciones se denominan declaraciones de casos de cambio anidados. Considere el siguiente ejemplo.
#include int main () { int i = 10; int j = 20; switch(i) { case 10: printf('the value of i evaluated in outer switch: %d ',i); case 20: switch(j) { case 20: printf('The value of j evaluated in nested switch: %d ',j); } } printf('Exact value of i is : %d ', i ); printf('Exact value of j is : %d ', j ); return 0; }
Producción
the value of i evaluated in outer switch: 10 The value of j evaluated in nested switch: 20 Exact value of i is : 10 Exact value of j is : 20
Ventajas de la declaración de cambio:
Hay varias ventajas de la declaración de cambio en C. Algunas ventajas principales de la declaración de cambio son las siguientes:
El declaración de cambio admite el uso de un caso predeterminado que sirve como opción general para valores que no coinciden con ninguno de los casos proporcionados. Este caso predeterminado maneja entradas inusuales o circunstancias que no están expresamente indicadas.
Desventajas de la declaración de cambio:
Hay varias desventajas de la declaración de cambio en C. Algunas desventajas principales de la declaración de cambio son las siguientes: