Saltar al contenido

Declaración de C Switch – javatpoint

septiembre 29, 2021
cswitch

La instrucción switch en C es una alternativa a la instrucción de escalera if-else-if que nos permite ejecutar múltiples operaciones para los diferentes valores posibles de una sola variable llamada variable switch. Aquí, podemos definir varias declaraciones en los casos múltiples para los diferentes valores de una sola variable.

La sintaxis de la instrucción switch en lenguaje c se da a continuación:

switch (expresión) {caso valor1: // código a ejecutar; rotura; // caso opcional value2: // código a ejecutar; rotura; // opcional …… predeterminado: código que se ejecutará si no coinciden todos los casos; }


Reglas para la instrucción de cambio en lenguaje C

1) El cambiar de expresión debe ser de tipo entero o carácter.

2) El valor del caso debe ser un número entero o constante de caracteres.

3) El valor del caso solo se puede usar dentro de la instrucción switch.

4) El declaración de ruptura en caso de interruptor no es obligatorio. Es opcional. Si no se encuentra una declaración de ruptura en el caso, todos los casos se ejecutarán presentes después del caso emparejado. Es conocido como caer a través el estado de la declaración de cambio de C.

Intentemos entenderlo con los ejemplos. Suponemos que existen las siguientes variables.

int x, y, z; char a, b; flotar f;

Interruptor válido Interruptor no válido Caso válido Caso invá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

flujo de declaración de cambio en c

Funcionamiento de la declaración del caso del interruptor

Primero, se evalúa la expresión entera especificada en la instrucción switch. A continuación, este valor se compara uno a 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 tengan valores similares. Si el caso coincidente contiene una declaración de interrupción, se omitirán todos los casos presentes después de eso y el control sale del conmutador. De lo contrario, se ejecutarán todos los casos que siguen al caso emparejado.

Veamos un ejemplo simple de declaración de cambio de lenguaje c.

#incluir
int main () {int número = 0; printf («ingresa un número:»); scanf («% d», & número); cambiar (número) {caso 10: printf («el número es igual a 10»); rotura; caso 50: printf («el número es igual a 50»); rotura; caso 100: printf («el número es igual a 100»); rotura; predeterminado: printf («el número no es igual a 10, 50 o 100»); } return 0; }

Producción

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; cambiar (x> y && x + y> 0) {caso 1: printf («hola»); rotura; caso 0: printf («adiós»); rotura; predeterminado: printf («Hola, adiós»); }}

Producción

C La declaración de Switch es fallida

En lenguaje C, la declaración de cambio no se cumple; significa que si no usa una declaración de interrupción en el caso de cambio, se ejecutarán todos los casos después del caso coincidente.

Tratemos de entender la caída a través del estado de la declaración de cambio con el ejemplo que se muestra a continuación.

#incluir
int main () {int número = 0; printf («ingresa un número:»); scanf («% d», & número); cambiar (número) {caso 10: printf («el número es igual a 10 n»); caso 50: printf («el número es igual a 50 n»); caso 100: printf («el número es igual a 100 n»); predeterminado: printf («el número no es igual a 10, 50 o 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 conmutador anidado

Podemos usar tantas sentencias switch como queramos dentro de una sentencia switch. Este tipo de declaraciones se denominan declaraciones de caso de conmutación anidadas. Considere el siguiente ejemplo.

#include int main () {int i = 10; int j = 20; switch (i) {caso 10: printf («el valor de i evaluado en el interruptor externo:% d n», i); caso 20: switch (j) {caso 20: printf («El valor de j evaluado en el switch anidado:% d n», j); }} printf («El valor exacto de i es:% d n», i); printf («El valor exacto de j es:% d n», 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 

close