Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: n-utz en 30 Mayo 2016, 23:35 pm



Título: [C] Duda sencilla - sentencia Switch
Publicado por: n-utz en 30 Mayo 2016, 23:35 pm
Buenas tardes, verán estoy haciendo un tp en pseudo código y no estoy en mi casa para corroborar la siguiente duda.

En C, se puede poner en un mismo `case` de la sentencia switch un or?

Ejemplo:

switch (caracter)
   case `a` || `b`:
              ....
              ....



Título: Re: [C] Duda sencilla - sentencia Switch
Publicado por: AlbertoBSD en 31 Mayo 2016, 00:06 am
Nunca lo he usado asi pero puedes empalmar las lineas:


Código
  1. switch (caracter){
  2.   case 'a':
  3.   case 'b':
  4. //hacer algo en caso de a o b
  5.   break;
  6. }


Título: Re: [C] Duda sencilla - sentencia Switch
Publicado por: n-utz en 31 Mayo 2016, 00:25 am
Nunca lo he usado asi pero puedes empalmar las lineas:


Código
  1. switch (caracter){
  2.   case 'a':
  3.   case 'b':
  4. //hacer algo en caso de a o b
  5.   break;
  6. }

Me dijeron que lo que tenía que hacer es esto:

Código:
switch(caracter){
   case 'a','b':
        //Acciones
        break;
}

¿Es correcto?


Título: Re: [C] Duda sencilla - sentencia Switch
Publicado por: engel lex en 31 Mayo 2016, 00:31 am
nunca he visto con  coma... no es algo standard al igual que "..." la forma correcta es la de  la de  AlbertoBSD

que para mejor visibilidad puedes apilar en linea

Código
  1. switch (caracter){
  2.   case 'a': case 'b':
  3. //hacer algo en caso de a o b
  4.   break;
  5. }

sin embargo en estos casos es preferible irse con if-else, else if y listo


Título: Re: [C] Duda sencilla - sentencia Switch
Publicado por: n-utz en 31 Mayo 2016, 01:00 am
Perfecto, gracias a ambos.