If you're seeing this message, it means we're having trouble loading external resources on our website.

Si estás detrás de un filtro de páginas web, por favor asegúrate de que los dominios *.kastatic.org y *.kasandbox.org estén desbloqueados.

Contenido principal

Condicionales con if, else y booleanos

Como humanos, tomamos decisiones todos los días, como qué comer para el almuerzo o si llevar un impermeable. Cuando tomamos esas decisiones, consideramos muchas condiciones de nuestro mundo, como el contenido de nuestro refrigerador para el almuerzo, o el clima exterior para el impermeable.
Los programas de computadora también toman decisiones, con expresiones booleanas (verdadero/falso) dentro de condicionales (if/else). Gracias a los condicionales, los programas pueden responder de manera diferente según diferentes entradas y parámetros.

Un condicional simple

Imagina que escribimos un programa para ayudar a decidir qué vestir afuera cada día. Hay muchas condiciones que podemos considerar con este programa, pero empecemos simple: si la temperatura es menor al punto de congelación, el programa debería advertirnos que usemos una chaqueta de nieve.
Esta es la lógica en un diagrama de flujo:
Diagrama de flujo que inicia en el diamante que dice "¿la temperatura es menor o igual a 32?". El diamante tiene una flecha etiquetada como "TRUE" que lleva al rectángulo que dice "Display: "¡Usa una chaqueta de nieve!".
Podemos programar el diagrama en JavaScript con una instrucción "if":
if (temperature < 32) {
  println("¡Usa una chaqueta de nieve!");
}
Desglosemos esa sintaxis. La estructura general de cada comando "if" se ve así:
if ( <condición> ) {
    <instrucciones>
}
La condición y las instrucciones es la diferencia; ahí es donde ocurre la magia.
La condición es una expresión booleana: una expresión que evalúa a true o false. Los valores booleanos son otro tipo de tipo de datos en lenguajes de programación, y solo pueden ser verdadero o falso.
Por ejemplo, podemos almacenar el resultado de esa expresión booleana en una variable:
var belowFreezing = temperature < 32;
Dependiendo del valor actual de temperature, la variable belowFreezing ahora almacenará true o false.
Incluso podemos sustituir la condición por la variable:
var belowFreezing = temperature < 32;
if (belowFreezing) {
  println("¡Usa una chaqueta de nieve!");
}
Como lo codifiquemos, la condición debe evaluar a true o false, porque eso le dice a la computadora si ejecutar las instrucciones dentro de las llaves, o no.
Las instrucciones pueden ser cualquier cosa que tu programa pueda hacer, y pueden ser tan largas como sea necesario.
✏️ Intenta cambiar el valor de temperature en el siguiente programa y mira qué pasa. También puedes cambiar la condición o las instrucciones.
📝 Mira código similar en: App Lab | Snap | Python
Nota: típicamente, un programa como este podría leer el valor de temperature de un sensor u otro dispositivo de entrada, pero por simplicidad, codificamos el valor en el programa.

Operadores de comparación

Nuestra expresión booleana anterior utilizó el operador de comparación <= para determinar si un número es menor o igual a otro. Hay muchos operadores de comparación en lenguajes de programación para determinar diferentes relaciones entre valores, especialmente números.
Estos son los operadores relacionales en JavaScript:
OperadorSignificadoExpresiones verdaderas
>Mayor que60 > 32
>=Mayor que o igual60 >= 3232 >= 32
<Menor que20 < 32
<=Menos o igual20 <= 3232 <= 32
===Igualdad estricta32 === 32
==Igualdad32 == 32"32" == 32
! ==Desigualdad estricta30 !== 32"32" !== 32
!=Desigualdad30 != 32
JavaScript es un lenguaje algo intrincado, pues tiene operadores de igualdad y de igualdad "estricta".
Los operadores de igualdad primero intentan forzar a que ambos lados de la expresión sean del mismo tipo (como por ejemplo convirtiendo ambos a números), y luego comprobar la igualdad. Cuando el operador de igualdad estricta ve que dos valores son de tipo diferente, de inmediato decide que no pueden igualarse. Recomendamos utilizar los operadores estrictos porque hacen que el código sea más predecible.
La mayoría de los lenguajes de programación no tienen ambos tipos de operadores de igualdad, pero puedes encontrar otras diferencias en la manera como deciden si dos variables son iguales.
✏️ El siguiente programa muestra todo tipo de mensajes de acuerdo con la variable yourAge. Intenta cambiarlo a diferentes valores para ver qué salida aparece. También puedes añadir más instrucciones if al programa.
📝 Mira código similar en: App Lab | Snap | Python

La cláusula "else"

Con instrucciones "if", nuestros programas pueden ejecutar un conjunto de instrucciones solo si la condición es verdadera. Si queremos que nuestros programas ejecuten otro conjunto de instrucciones cuando la condición es falsa, entonces podemos usar una cláusula "else".
Imagina un programa de verificación de contraseñas muy simple. El flujo lógico se ve así:
Diagrama de flujo que inicia en diamante que dice "¿La contraseña es TOPSECRET?". Primera flecha etiquetada "TRUE" va del diamante al rectángulo que dice "Display '¡atinaste!'". Segunda flecha etiquetada "FALSE" va del diamante al rectángulo que dice "Display '¡intenta de nuevo!'".
Podemos programar eso con una instrucción if seguida de else:
if (password === "TOPSECRET") {
   println("You got it!");
} else {
   println("Try again!");
}
📝 Mira código similar en: App Lab | Snap | Python
Nuestro programa garantiza ir siempre por uno de los dos caminos: o la condición es cierta y va por el primer camino, o es falsa y va por el segundo camino.
✏️ El siguiente programa se basa en el programa anterior de verificación de edad, y añade cláusulas else en todas. Ahora puedes ver fácilmente lo que puedes y no puedes hacer a cualquier edad. Juega con la variable yourAge y mira cómo cambia la salida.
📝 Mira código similar en: App Lab | Snap | Python

Condicionales en pseudocódigo

Este pseudocódigo representa una sola instrucción if:
IF ( <condición> ) {
    <instrucciones>
}
Este pseudocódigo incluye una cláusua else con un segundo conjunto de instrucciones que pueden ejecutarse en otro caso:
IF (<condición>)
{
     <instrucciones 1>
} 
ELSE 
{
     <instrucciones 2>
}
Estos son los operadores relacionales en pseudocódigo:
OperadorSignificado
a = bIgualdad
a ≠ bDesigualdad
a > bMayor que
a < bMenor que
a ≥ bMayor o igual
a ≤ bMenor o igual
Esta es la lógica del verificador de contraseñas en pseudocódigo:
If (password === "TOPSECRET") {
   println("You got it!");
} else {
   println("Try again!");
}

🙋🏽🙋🏻‍♀️🙋🏿‍♂️¿Tienes alguna pregunta sobre este tópico? Nos encantaría contestarte; ¡simplemente pregunta en el area de preguntas abajo!

¿Quieres unirte a la conversación?

Sin publicaciones aún.
¿Sabes inglés? Haz clic aquí para ver más discusiones en el sitio en inglés de Khan Academy.