Requisito previo: declaración de cambio , toma de decisiones (si no es así)
Una declaración de cambio suele ser más eficiente que un conjunto de ifs anidados. Decidir si usar sentencias if-then-else o una sentencia switch se basa en la legibilidad y la expresión que la sentencia está probando.
- Verifique la expresión de prueba: una declaración if-then-else puede probar expresiones basadas en rangos de valores o condiciones, mientras que una declaración de cambio prueba expresiones basadas solo en un único entero, valor enumerado u objeto String.
- Cambie mejor para la bifurcación de múltiples vías: cuando el compilador compila una declaración de cambio, inspeccionará cada una de las constantes de caso y creará una «tabla de salto» que usará para seleccionar la ruta de ejecución según el valor de la expresión. Por lo tanto, si necesitamos seleccionar entre un gran grupo de valores, una declaración de cambio se ejecutará mucho más rápido que la lógica equivalente codificada usando una secuencia de if-elses. El compilador puede hacer esto porque sabe que las constantes de caso son todas del mismo tipo y simplemente deben compararse para la igualdad con la expresión de cambio, mientras que en el caso de las expresiones, el compilador no tiene tal conocimiento.
- if-else mejor para valores booleanos: las ramas condicionales de if-else son excelentes para condiciones variables que dan como resultado un valor booleano, mientras que las declaraciones de cambio son excelentes para valores de datos fijos.
- Velocidad: una declaración de cambio podría resultar más rápida que si el número de casos fuera bueno. Si solo hay unos pocos casos, es posible que no afecte la velocidad en ningún caso. Prefiera cambiar si el número de casos es más de 5; de lo contrario, puede usar if-else también.
Si un conmutador contiene más de cinco elementos, se implementa mediante una tabla de búsqueda o una lista hash. Esto significa que todos los elementos obtienen el mismo tiempo de acceso, en comparación con una lista de if:s donde el último elemento tarda mucho más en llegar, ya que primero tiene que evaluar todas las condiciones anteriores. - Claridad en la legibilidad: un interruptor se ve mucho más limpio cuando tienes que combinar estuches. Los ifs también son bastante vulnerables a los errores. Omitir una declaración else puede causarle estragos. Agregar/eliminar etiquetas también es más fácil con un interruptor y hace que su código sea significativamente más fácil de cambiar y mantener.
Por último, implemente el diseño que sea más claro y fácil de mantener según la demanda de su código. Si está aterrizando en un caso de cambio enorme o en un bloque if-else, cambie a otras técnicas como el polimorfismo. Solo averigüe el comportamiento del objeto e intente encapsularlo si es posible.
Este artículo es una contribución de Gaurav Miglani . 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