Saltar al contenido

¿Cuál es más rápido y mejor, Switch Case o if else if?

El tutorial o código que hallarás en este artículo es la solución más fácil y válida que hallamos a esta duda o dilema.

Solución:

Su primer ejemplo es simplemente incorrecto. Necesitas elseif en lugar de solo else.

Si utiliza if..elseif... o switch es principalmente una cuestión de preferencia. El rendimiento es el mismo.

Sin embargo, si todas sus condiciones son del tipo x == value con x siendo el mismo en todas las condiciones, switch suele tener sentido. Yo también solo usaría switch si hay más de, por ejemplo, dos condiciones.

Un caso donde switch en realidad le da una ventaja de rendimiento si la parte variable es una llamada de función:

switch(some_func()) 
    case 1: ... break;
    case 2: ... break;

Después some_func() solo se llama una vez mientras está con

if(some_func() == 1) 
elseif(some_func() == 2) 

se llamaría dos veces, incluidos los posibles efectos secundarios de la llamada a la función dos veces. Sin embargo, siempre puedes usar $res = some_func(); y luego usar $res en tus if condiciones – para que pueda evitar este problema por completo.

Un caso en el que Ud. no poder use el interruptor en absoluto es cuando tiene condiciones más complejas – switch solo funciona para x == y con y siendo un valor constante.

Según phpbench.com, if/elseif es un poco más rápido, especialmente cuando se usa una comparación estricta (===).

ingrese la descripción de la imagen aquí

Pero solo importará realmente si desea eliminar microsegundos en una función que se llamará miles de veces.

regla general es usar switch siempre que el número de condiciones sea mayor que 3 (para legibilidad).

if / else if / else es más flexible (por lo tanto mejor), pero switch es un poco más rápido porque solo calcula la condición una vez y luego verifica la salida, mientras que if tiene que hacer esto cada vez.

EDITAR: Parece que switch es más lento que if después de todo, podría jurar que no fue así…

Reseñas y valoraciones del tutorial

Si guardas alguna indecisión o forma de mejorar nuestro enunciado eres capaz de ejecutar una referencia y con mucho placer lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *