Estructuras de control: Condicionales IF
Hasta ahora hemos aprendido a almacenar información en variables, trabajar con distintos tipos de datos y realizar operaciones mediante operadores.
Sin embargo, todos los programas que hemos visto hasta ahora tienen algo en común: siempre ejecutan las instrucciones en el mismo orden.
console.log("Paso 1");
console.log("Paso 2");
console.log("Paso 3");
En este caso siempre se mostrarán los tres mensajes.
Pero la mayoría de los programas necesitan tomar decisiones.
Por ejemplo:
- Si el usuario introduce una contraseña correcta, podrá acceder a la aplicación.
- Si un alumno obtiene una nota igual o superior a 5, aprobará la asignatura.
- Si una tienda supera un importe determinado, ofrecerá envío gratuito.
- Si la batería del móvil está por debajo del 20 %, aparecerá un aviso.
Todas estas situaciones tienen algo en común:
Si ocurre una condición, entonces se realiza una acción.
Las estructuras de control nos permiten modificar el flujo normal de ejecución del programa para adaptarlo a distintas situaciones.
En este tema aprenderemos a utilizar las principales estructuras condicionales de JavaScript.
Contenido
- ¿Qué son las estructuras de control?
- Condiciones
- La estructura
if - La estructura
else - La estructura
else if - Errores frecuentes
- Buenas prácticas
¿Qué es una condición?
Una condición es una expresión cuyo resultado solo puede ser uno de estos dos valores:
truefalse
Por ejemplo:
5 > 3
Resultado:
true
O bien:
10 < 4
Resultado:
false
Las condiciones suelen construirse utilizando operadores de comparación.
edad >= 18
nota >= 5
precio < 50
usuario === "admin"
Cada una de estas expresiones devuelve un valor booleano (true o false).
Ese resultado será el que determine qué camino seguirá el programa.
Un ejemplo de la vida real
Imagina que quieres entrar en un cine.
La decisión podría representarse así:
¿Tienes entrada?
│
┌──┴──┐
Sí No
│ │
Entrar No entrar
Un programa funciona exactamente igual.
Primero comprueba una condición y, dependiendo del resultado, ejecuta unas instrucciones u otras.
La estructura if
La estructura if es la forma más sencilla de tomar decisiones en JavaScript.
Su funcionamiento puede resumirse así:
Si una condición es verdadera, ejecuta un bloque de código.
Si la condición es falsa, simplemente continúa con el resto del programa.
Sintaxis
if (condición) {
// Código que se ejecuta
// SOLO SI LA CONDICIÓN ES VERDADERA
}
Observa que:
- La condición siempre va entre paréntesis.
- El código que depende del
ifva entre llaves. Este código solo se ejecutará si se cumple la condición delif.
Diagrama de funcionamiento
if
│
¿Condición?
│
┌───┴────┐
Sí No
│ │
Ejecuta Continúa
el código el programa e ignora el código de dentro
Primer ejemplo
Queremos comprobar si una persona es mayor de edad.
let edad = 20;
if (edad >= 18) {
console.log("Eres mayor de edad.");
}
Resultado:
Eres mayor de edad.
Como la condición es verdadera (20 >= 18), JavaScript ejecuta el bloque del if.
Si cambiamos la edad:
let edad = 15;
if (edad >= 18) {
console.log("Eres mayor de edad.");
}
No aparecerá ningún mensaje.
¿Por qué?
Porque la condición vale false.
Ejemplo 2
Comprobar si una nota está aprobada.
let nota = 8;
if (nota >= 5) {
console.log("Has aprobado.");
}
Resultado:
Has aprobado.
Ejemplo 3
Mostrar un aviso cuando quede poca batería.
let bateria = 18;
if (bateria < 20) {
console.log("Batería baja.");
}
Resultado:
Batería baja.
Ejemplo 4
Comprobar una contraseña.
let password = "javascript";
if (password === "javascript") {
console.log("Acceso permitido.");
}
¿Qué ocurre si la condición es falsa?
Simplemente no sucede nada.
let edad = 15;
if (edad >= 18) {
console.log("Puedes conducir.");
}
Sin embargo hay que tener en cuenta que el resto de instrucciones más abajo que estén fuera del if se seguirán ejecutando igualmente.
let edad = 15;
if (edad >= 18) {
console.log("Puedes conducir.");
}
console.log("Fin del programa.");
Resultado:
Fin del programa.
El programa continúa normalmente.
let edad = 20;
if (edad >= 18) {
console.log("Puedes conducir.");
}
console.log("Fin del programa.");
Resultado:
Puedes conducir.
Fin del programa.
La estructura else
En muchas ocasiones queremos ejecutar una acción cuando la condición es verdadera y otra distinta cuando es falsa.
Para ello utilizamos else.
Sintaxis
if (condición) {
// Si la condición es verdadera
// código A
} else {
// Si la condición es falsa
// código B
}
Diagrama
if
│
¿Condición?
┌────┴────┐
Sí No
│ │
Código A Código B
Ejemplo 1
let edad = 16;
if (edad >= 18) {
console.log("Eres mayor de edad.");
} else {
console.log("Eres menor de edad.");
}
Resultado:
Eres menor de edad.
Ejemplo 2
let nota = 4;
if (nota >= 5) {
console.log("Aprobado");
} else {
console.log("Suspenso");
}
Resultado:
Suspenso
Ejemplo 3
let stock = 0;
if (stock > 0) {
console.log("Producto disponible.");
} else {
console.log("Producto agotado.");
}
Resultado:
Producto agotado.
Ejemplo 4
let llueve = false;
if (llueve) {
console.log("Lleva paraguas.");
} else {
console.log("No hace falta paraguas.");
}
Observa que no siempre es necesario escribir una comparación.
Como llueve ya contiene un valor booleano, podemos utilizar directamente la variable.
La estructura else if
Hasta ahora solo teníamos dos posibles caminos.
Pero muchas veces necesitamos tomar más de dos decisiones.
Por ejemplo:
- Sobresaliente
- Notable
- Aprobado
- Suspenso
Para ello utilizamos else if.
Sintaxis
if (condición1) {
// Codigo A
}
else if (condición2) {
// Codigo B
}
else if (condición3) {
// Codigo C
}
else {
// Codigo D: se eejecuta si no se ha cumplido ninfuna de las condiciones anteriores. Es como "en cualquier otro caso..."
}
JavaScript evaluará las condiciones de arriba hacia abajo.
En cuanto encuentre una condición verdadera, dejará de comprobar las siguientes. Esto es muy importante, tener en cuenta que en el momento se cumpla una condición, ni siquiera se parará a mirar las siguientes, simpelemente las ignorará.
Por ejemplo:
let numero = 10;
if (numero > 5){
console.log("Número mayor que 5");
}else if (numero % 2 === 0){
console.log("Número par");
}else if(numero < 20){
console.log("Número menor que 20");
}
Resultado:
Número mayor que 5
Como ves, el único mensaje que muestra es "Número mayor que 5", a pesar de que como puedes observar el resto de condiciones también son ciertas para el número 10. Esto ocurre por, como hemos dicho, que una vez se cumpla una condición, dejará de comprobar las siguientes.
Por tanto, en caso de que queramos comprobar condiciones independiente entre sí, en lugar de utilizar la estructura if else if else, simpelemente usaremos varios if independientes:
let numero = 10;
if (numero > 5){
console.log("Número mayor que 5");
}i
if (numero % 2 === 0){
console.log("Número par");
}
if(numero < 20){
console.log("Número menor que 20");
}
Resultado:
Número mayor que 5
Número par
Número menor que 20
Al hacer uso solamente del if, las condiciones no están conectadas entre ellas y por tanto se evalúan todas de manera independiente.
Diagrama del else if
¿Condición 1?
│
┌────┴────┐
Sí No
│ │
Fin ¿Condición 2?
│
┌────┴────┐
Sí No
│ │
Fin ¿Condición 3?
|
...
Puede haber tantos else if como posibilidades tenga nuestro programa.
Ejemplo 1
Clasificar una nota.
let nota = 8;
if (nota >= 9) {
console.log("Sobresaliente");
}
else if (nota >= 7) {
console.log("Notable");
}
else if (nota >= 5) {
console.log("Aprobado");
}
else {
console.log("Suspenso");
}
Resultado:
Notable
Ejemplo 2
Temperatura.
let temperatura = 32;
if (temperatura < 10) {
console.log("Hace frío.");
}
else if (temperatura < 25) {
console.log("Temperatura agradable.");
}
else {
console.log("Hace calor.");
}
Ejemplo 3
Descuento en una tienda.
let compra = 120;
if (compra >= 200) {
console.log("20% de descuento");
}
else if (compra >= 100) {
console.log("10% de descuento");
}
else {
console.log("Sin descuento");
}
Errores frecuentes
Confundir = con ===
❌ Incorrecto
if (edad = 18)
Aquí no estamos comparando, sino asignando un valor.
✅ Correcto
if (edad === 18)
Escribir mal los bloques
❌ Incorrecto
if (edad >= 18)
console.log("Mayor");
console.log("Puede conducir");
✅ Correcto
if (edad >= 18) {
console.log("Mayor");
console.log("Puede conducir");
}
Colocar un punto y coma después del if
❌ Incorrecto
if (edad >= 18);
{
console.log("Mayor");
}
Uso de operadores lógicos
En las condiciones del if también podemos hacer uso de los operadores && (and) y || (or).
Funcionan tal cual hemos visto en el apartado de Operadores.
Por ejemplo:
let edad = 17;
let carnet = false;
if (edad >= 18 && carnet){
console.log("Puedes conducir");
}
Buenas prácticas
✅ Escribe condiciones sencillas.
✅ Utiliza siempre llaves {} aunque solo exista una instrucción.
✅ Utiliza === en lugar de ==.
✅ Ordena las condiciones de la más específica a la más general cuando uses else if..
Resumen
En este apartado hemos aprendido a utilizar las principales estructuras condicionales de JavaScript.
ifejecuta un bloque cuando una condición es verdadera.elsepermite ejecutar un bloque alternativo.else ifpermite evaluar varias condiciones consecutivas.
Ejercicios if else if else
Ejercicio 1
Crea un programa que dado un peso y una altura, calcule su índice IMC e indique su estado.
- Peso inferior al normal Menos de 18.5
- Normal 18.5 – 24.9
- Peso superior al normal 25.0 – 29.9
- Obesidad Más de 30.0
Ejercicio 2
Crea un programa que dado un número del 1 al 7 indique el día de la semana correspondiente (1 = Lunes, 2 = Martes,...). Ten en cuenta la posibilidad de que el número introducido no esté en el rango correcto (por ejemplo no existe el día de la semana número 23).