Requisito previo: Cambiar caso en C/C++
Problemas interesantes de la instrucción Switch en C/C++
- Programa 1
#include <stdio.h>
int
main()
{
int
num = 2;
switch
(num + 2)
{
case
1:
printf
(
"Case 1: "
);
case
2:
printf
(
"Case 2: "
);
case
3:
printf
(
"Case 3: "
);
default
:
printf
(
"Default: "
);
}
return
0;
}
Producción:
Default:
Explicación: En cambio, una expresión «num+2» donde el valor numérico es 2 y después de la suma, el resultado de la expresión es 4. Dado que no hay ningún caso definido con el valor 4, se ejecutó el caso predeterminado.
-
Programa 2
#include<stdio.h>
void
main()
{
int
movie = 1;
switch
(movie << (2 + movie))
{
default
:
printf
(
" Traffic"
);
case
4:
printf
(
" Sultan"
);
case
5:
printf
(
" Dangal"
);
case
8:
printf
(
" Bahubali"
);
}
}
Producción:
Bahubali
Explicación: podemos escribir declaraciones de casos en cualquier orden, incluido el caso predeterminado. Ese caso predeterminado puede ser el primer caso, el último caso o entre cualquier caso en la declaración de cambio de caso. El valor de la expresión «película << (2 + película)» es 8.
- Programa 3
#include<stdio.h>
#define L 10
void
main()
{
auto
a = 10;
switch
(a, a*2)
{
case
L:
printf
(
"ABC"
);
break
;
case
L*2:
printf
(
"XYZ"
);
break
;
case
L*3:
printf
(
"PQR"
);
break
;
default
:
printf
(
"MNO"
);
case
L*4:
printf
(
"www"
);
break
;
}
}
Producción:
XYZ
Explicación: En C, la coma también es el operador con menor precedencia. Entonces si
x = (a, b);
Entonces x = b
Nota: La expresión de caso puede ser una macro constante. - Programa 4
#include<stdio.h>
void
main()
{
switch
(2)
{
case
1L:
printf
(
"No"
);
case
2L:
printf
(
"%s"
,
"GEEKS"
);
goto
Love;
case
3L:
printf
(
"Please"
);
case
4L:Love:
printf
(
"FOR"
);
}
}
Producción:
GEEKSFOR
Explicación: es posible escribir la etiqueta de la instrucción goto en el caso de la instrucción switch case.
Este artículo es una contribución del Sr. Somesh Awasthi . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA