Saltar al contenido
  • 0

Cual es la diferencia entre if y switch?


Toguro

Pregunta

Hola, estoy mirando un curso javascript y por el momento tengo esa duda.

Por ejemplo tanto con "if" y "switch" se pueden lograr las misma cosas:

if:

var a = 3;

if(a==0){
	alert("a = 0");
}
else if(a==1){
	alert("a = 1");
}
else if(a>1){
	alert("a = "+a);
}

switch:

var a = 3;

switch(a){
	case 0:
		alert("a = 0");
	break;
	case 1:
		alert("a = 1");
	break;
	default:
		alert("a = "+a);
	break;
}

Entonces cual seria la diferencia? Seguro mi pregunta es tonta, pero quisiera que me aclaren eso.

PD: Soy noob, es el primer curso sobre programación que veo.

Editado por Toguro
Enlace al mensaje
Compartir en otros sitios
  • Answers 37
  • Created
  • Última respuesta

Top Posters For This Question

Top Posters For This Question

Popular Posts

Tu pregunta no es tonta es muy común tener esta duda, el if es mejor para valores booleanos y una cantidad indefinida de parámetros Ejemplo: let edad = 17; if(edad < 18 ){ alert("Eres menor de edad no puedes pasar"); } else if(edad === 17){ alert("Te falata un año para la mayoria de edad, regresa cuando tengas 18"); } else if(edad >= 18 ){ alert("Bienvenido eres mayor de edad"); } En el siguiente ejemplo estamos determinando si una persona cumple con la mayoría de eda

Pues de patrones busca por la plataforma  patrones en node de nicolas schurmann, a parte el mismo tiene un canal de youtube que se llama holamundo (https://www.youtube.com/channel/UC4FHiPgS1KXkUMx3dxBUtPg), tiene videos de programacion funcional. Por otro lado lo mejor es leer articulos en DEV o Medium. Aqui te dejare los primeros que se me ocurran pero si tu buscas encontraras 1000 mas:  Metodo sencillo para quitar los switch cases (lo que hace es crear un pequeño patron comando

Desde mi punto de vista es que el uso del if esta mas enfocado a una logica de programacion donde las condiciones son mas simples y no sobre pase a dos comparaciones en cuanto al switch ya lo usarias para cuando tienes definido los posibles casos o escenarios a comprobar. 

Recommended Posts

  • 0

Tu pregunta no es tonta es muy común tener esta duda,

el if es mejor para valores booleanos y una cantidad indefinida de parámetros

Ejemplo:

let  edad = 17;

if(edad < 18 ){
	alert("Eres menor de edad no puedes pasar");
}
else if(edad === 17){
	alert("Te falata un año para la mayoria de edad, regresa cuando tengas 18");
}
else if(edad >= 18 ){
	alert("Bienvenido eres mayor de edad");
}

En el siguiente ejemplo estamos determinando si una persona cumple con la mayoría de edad, con el IF es muy fácil hacer la comprobación, puedes a través de operadores d comparación abarcar un rango amplio de edades.

Ahora si intentaras hacer lo mismo con un SWITCH se complicaría mucho el código 

let  edad = 16;
switch (edad) {
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
        alert("Eres menor de edad no puedes pasar");
        break;
    case 17:
        alert("Te falata un año para la mayoria de edad, regresa cuando tengas 18");
        break;
    case 18:
        alert("Bienvenido eres mayor de edad");
        break;
    default:
        text = "No tienes la edad requerida";
}

como ves es mucho código y todavía quedan comprobar las edades por debajo de los 10 años y por encima de los 18.

Un SWITCH úsalo cuando necesites comprobar una cantidad especifica de parámetros , por ejemplo imagina que necesitas una web en tres idiomas:

let lan = "ES";
switch (lan) {
    case "ES":
        alert("Bienvenido");
        break;
    case "EN":
        alert("Welcome")
        break;
  	case "PT":
    	alert("bem vindo")
    default:
        alert("Bienvenido");
}

En el ejemplo intentamos determinar el idioma de un usuario al entra a una web, y darle la bienvenida en su idioma, sino se especifica su idioma por defecto es en español, al ser pocos parámetros el SWITCH es mejor opción mas rápida y mas legible.

Espero te halla ayudado con tu duda, como recomendación final sigue aprendiendo que con practica iras comprendiendo mejor la estructuras de control y cuando implementar la adecuada.

  • Voto Positivo 5
Enlace al mensaje
Compartir en otros sitios
  • 0

ambas debes saber utilizarlas convenientemente segun lo que desees hacer, vas a encontrar cosas donde se va aver mas elegante hacerlo con if o switch , tbn encontraras situaciones donde no puedas utilizar el switch o el if, mientras vas avanzando en programacion tu mismo te daras cuenta

Enlace al mensaje
Compartir en otros sitios
  • 0
On 30/7/2018 at 23:21, Toguro dijo:

Hola, estoy mirando un curso javascript y por el momento tengo esa duda.

Por ejemplo tanto con "if" y "switch" se pueden lograr las misma cosas:

if:

var a = 3;

if(a==0){
	alert("a = 0");
}
else if(a==1){
	alert("a = 1");
}
else if(a>1){
	alert("a = "+a);
}

switch:

var a = 3;

switch(a){
	case 0:
		alert("a = 0");
	break;
	case 1:
		alert("a = 1");
	break;
	default:
		alert("a = "+a);
	break;
}

Entonces cual seria la diferencia? Seguro mi pregunta es tonta, pero quisiera que me aclaren eso.

PD: Soy noob, es el primer curso sobre programación que veo.

Desde mi punto de vista es que el uso del if esta mas enfocado a una logica de programacion donde las condiciones son mas simples y no sobre pase a dos comparaciones

en cuanto al switch ya lo usarias para cuando tienes definido los posibles casos o escenarios a comprobar. 

  • Voto Positivo 1
Enlace al mensaje
Compartir en otros sitios
  • 0
hace 13 minutos, sandoya dijo:

Un if es para comprobar verdadero o falso. Mientras que un switch es para comparar un valor contra una serie de valores. Si bien puedes hacer lo mismo que un swicth con if no es recomendable porque es engorroso y dificil de leer.

Si tienes razón, pero el switch es en casos puntuales, en expresiones lógicas complejas no te queda más remedio de utilizar if, anidados o repensar la forma de como formular estas condiciones.

Enlace al mensaje
Compartir en otros sitios
  • 0
On 31/7/2018 at 3:09, hosnicolina dijo:

Tu pregunta no es tonta es muy común tener esta duda,

el if es mejor para valores booleanos y una cantidad indefinida de parámetros

Ejemplo:

let  edad = 17;

if(edad < 18 ){
	alert("Eres menor de edad no puedes pasar");
}
else if(edad === 17){
	alert("Te falata un año para la mayoria de edad, regresa cuando tengas 18");
}
else if(edad >= 18 ){
	alert("Bienvenido eres mayor de edad");
}

En el siguiente ejemplo estamos determinando si una persona cumple con la mayoría de edad, con el IF es muy fácil hacer la comprobación, puedes a través de operadores d comparación abarcar un rango amplio de edades.

Ahora si intentaras hacer lo mismo con un SWITCH se complicaría mucho el código 

let  edad = 16;
switch (edad) {
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
    case 16:
        alert("Eres menor de edad no puedes pasar");
        break;
    case 17:
        alert("Te falata un año para la mayoria de edad, regresa cuando tengas 18");
        break;
    case 18:
        alert("Bienvenido eres mayor de edad");
        break;
    default:
        text = "No tienes la edad requerida";
}

como ves es mucho código y todavía quedan comprobar las edades por debajo de los 10 años y por encima de los 18.

Un SWITCH úsalo cuando necesites comprobar una cantidad especifica de parámetros , por ejemplo imagina que necesitas una web en tres idiomas:

let lan = "ES";
switch (lan) {
    case "ES":
        alert("Bienvenido");
        break;
    case "EN":
        alert("Welcome")
        break;
  	case "PT":
    	alert("bem vindo")
    default:
        alert("Bienvenido");
}

En el ejemplo intentamos determinar el idioma de un usuario al entra a una web, y darle la bienvenida en su idioma, sino se especifica su idioma por defecto es en español, al ser pocos parámetros el SWITCH es mejor opción mas rápida y mas legible.

Espero te halla ayudado con tu duda, como recomendación final sigue aprendiendo que con practica iras comprendiendo mejor la estructuras de control y cuando implementar la adecuada.

Excelente aclaración colega!

Enlace al mensaje
Compartir en otros sitios
  • 0

Te voy a dar un consejo que ahora mismo te queda lejos, pero no te acostumbres a los Switch Case en programacion web se esta siguiendo la linea de la programacion funcional y acaban desapareciendo(los encontraras en Redux), tampoco te acostumbres a usar elses , se intentan poner lo menos posibles o no ponerlos, con lo que te quiero decir con esto es que no te acostumbres desde un principio a usarlos y aprende a usar condicionales ternarios, patron modulo , patron comando y clausulas de guarda 

Enlace al mensaje
Compartir en otros sitios
Invitado
Este tema esta cerrado para más respuestas.

×
×
  • Crear Nuevo...