Bien si tenemos en consideración esto, el codigo del switch siempre sería más efectivo que el del if-else, siempre y cuando existireran al menos dos opciones que evaluar, si solo hubiera una, entonces no serían iguales, ahora pensando en posibles anidamientos inferiores a los if-else (esto ya se sale de la idea previa) ek switch siempre es más efectivo o igual de efectivo al existir anidamientos inferiores a los casos de if-else, ya que elegiría su opción de forma directa y no evaluaría las opciones intermedias que puedieran existir en el encadenamiento de if-else.
Bien, una vez pensado en que podemos hacer, vayamos a lo que no podemos evaluar de forma sencilla con un if-else, reuslta que los casos de break; en un switch, dan una gran ventaja con respecto al if-else, ya qeu al cumplirse una condición superior, podríamos hacer que un switch siguiera ejecutando las opciones inferiores, si no utilizamos la clausula break, eso nos da una potencia que el encadenamiento de if-else, o if sencillos no nos podría dar, salvo un código muy grande, multiplicando el tiempo de compilación y ejecución.
Vale esto nos da una idea aproximada, resulta que siempre y cuando el número de opciones se pueda disparar, el switch, nos da una ventaja frente a los if. Pero vayamos a casos más avanzados, resulta que si queremos realizar una serie de acciones dependientes de una cantidad de condiciones compleja o de variables que se alejen de un caracter o un número, las opciones con el switch, se quedan no atrás sino a años luz, la potencia de los if en cuanto a la evaluación de condiciones son inmensas, en cambio el switch, solo puede evaluar una cantidad pequeña de condicionantes. Por lo que como resumen, o almenos como mi porpia conclusión diré que el switch aventaja al encadenamiento de if-else en cuanto a rendimiento, siempre y cuando las opciones sean evaluables con un switch, y siempre y cuando no sea necesario anidar estructuras complejas debajo de los casos a evaluar, ya que en ese caso, teniendo en cuanta que el compilador va a gestionar de forma lo más eficinete posible la localización del código, esto haría inservible el primer switch y convertiría todo en una maraña de anidamientos de la que no sería nada facil salir para el compilador, ralentizando de esta forma la mejora que se quería realizar.
Como idea final, decir que el if-else, será mejor para los casos complejos y los anidamientos, pero el swithc le sacará ventaja de rendimiento siempre y cuando las opciones sean evaluables y no exista una gran complejidad debajo de cada opción.
Related Articles
- Java Developers (bankjobs.pk)
- Latest Software Innovations From Java Duke's Choice Award (it-sideways.com)
[...] Actualizados : switch vs if (Java) Pagina para ver partidos de fútbol gratis [...]
ResponderEliminar