Foros del Web » Programación para mayores de 30 ;) » C/C++ »

if o switch/case??

Estas en el tema de if o switch/case?? en el foro de C/C++ en Foros del Web. Buenas, queria saber que es mas rapido , algo asi: Cita: if (caso1) { /*codigo*/ } if (caso2) { /*codigo*/ } o algo asi: Cita: ...
  #1 (permalink)  
Antiguo 28/02/2009, 21:00
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años, 6 meses
Puntos: 3
if o switch/case??

Buenas, queria saber que es mas rapido , algo asi:
Cita:
if (caso1)
{
/*codigo*/
}
if (caso2)
{
/*codigo*/
}
o algo asi:

Cita:
switch(caso)
{
case caso1:
/*codigo*/
break;

case caso2:
/*codigo*/
break;
}
o es lo mismo?

Para mi gusto es mejor usar switch/case en la mayoria de los casos, ademas tiene el default(que es mejor que el if/else if cuando hay muchas posibilidades y pueden cumplirse mas de una a la vez)
  #2 (permalink)  
Antiguo 28/02/2009, 21:30
Avatar de MeduZaPaT  
Fecha de Ingreso: enero-2009
Ubicación: USA
Mensajes: 106
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: if o switch/case??

creo que son lo mismo solo que el case es mas simple de leer cuando hay mucha mescla de numeros
calculo que el if puede llegar a ser mas lento en algunos casos o mas rapido en otros, dependiendo los anidamientos que se puedan hacer.
  #3 (permalink)  
Antiguo 01/03/2009, 05:37
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Respuesta: if o switch/case??

El compilador se encargara de optimizar cualquiera de las dos estructuras de control, no deberias preocuparte por eso y simplemente deberias usar la que prefieras.

El switch solo lo podes hacer, finalmente, con un valor entero y por lo tanto no puede cumplirse mas de un case a la vez (otra cosa es que se ejecuten varios case al no haber break).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:57.