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
On 8/12/2019 at 8:15, nostradonuts dijo:

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 con un objeto literal):

https://www.google.com/search?q=alternatives+switch+case&oq=alternatives+switch+case&aqs=chrome..69i57j0l5.4741j0j7&sourceid=chrome&ie=UTF-8

si quieres ver patrones mejor explicados te recomiendo esta pagina , te paso la de typescript que es lo que yo miro porque es el lenguaje que uso pero tiene una seccion de pyton, php, java....

https://refactoring.guru/design-patterns/typescript

clausulas guardas:

https://dev.to/carlillo/refactoring-guard-clauses-4ee6

Hay miles de articulos mas, y muchos videos(casi todos en ingles), solo tienes que tener claro que quieres buscar programacion funcional, no imperativa 

Gracias por la info.

On 31/7/2018 at 4: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.

Buena explicación.

Enlace al mensaje
Compartir en otros sitios
  • 0
On 8/12/2019 at 6:15, nostradonuts dijo:

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 con un objeto literal):

https://www.google.com/search?q=alternatives+switch+case&oq=alternatives+switch+case&aqs=chrome..69i57j0l5.4741j0j7&sourceid=chrome&ie=UTF-8

si quieres ver patrones mejor explicados te recomiendo esta pagina , te paso la de typescript que es lo que yo miro porque es el lenguaje que uso pero tiene una seccion de pyton, php, java....

https://refactoring.guru/design-patterns/typescript

clausulas guardas:

https://dev.to/carlillo/refactoring-guard-clauses-4ee6

Hay miles de articulos mas, y muchos videos(casi todos en ingles), solo tienes que tener claro que quieres buscar programacion funcional, no imperativa 

Excelente información 

Enlace al mensaje
Compartir en otros sitios
  • 0

Pues el if y el switch es lo mismo ambas llegarían al mismo resultado pero viéndolo desde mi punto de vista la diferencia seria que el switch se utiliza para proyectos o operaciones sencillas mientras que el if se puede hacer mucho mas compleja una condición y el if se puede anidar con un elseif.

a hasta ahora no he visto un switch con una condición larga de operar

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

×
×
  • Crear Nuevo...