Dev - C++ - Switch

 
Vista:

Switch

Publicado por hadock (4 intervenciones) el 07/11/2008 15:13:20
Buenas,

Estoy tratando de mejorar el rendimiento de una aplicación. Me preguntaba si el orden de los case de un switch puede afectar en el tiempo empleado por la aplicación. Por poner un ejemplo:

switch (n)
{
case 1 : printf("Hola %d ",n);break;
case 2: printf("Hola %d ",n);break;
case 3: printf("Hola %d ",n);break;
case 4: printf("Hola %d ",n);break;
case 5: printf("Hola %d ",n);break;
default: printf("Error ");
}

Si se que n es igual a 5 el %90 de los casos ganaré tiempo haciendo esto?

switch (n)
{
case 5: printf("Hola %d ",n);break;
case 1 : printf("Hola %d ",n);break;
case 2: printf("Hola %d ",n);break;
case 3: printf("Hola %d ",n);break;
case 4: printf("Hola %d ",n);break;
default: printf("Error ");
}

El tema es saber si el compilador crea una estructura if-else a partir de un switch o va directamente a una opción o al default. He leído por ahi que depende del compilador pero no se...

Alguien me puede ayudar?

Un saludo y muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Switch

Publicado por eduardo (26 intervenciones) el 07/11/2008 17:59:07
La estructura switch() compara cada caso segun como esté escrito y en la primera ocurrencia sale de la estructura siempre q haya un sentencia break.
Por tanto es recomendanle colocar los casos más comunes al inicio.
Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Switch

Publicado por hadock (4 intervenciones) el 10/11/2008 13:47:12
Gracias Eduardo. Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar