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

Repaso: declaraciones lógicas y condicionales (if)

Este es un repaso de lo que cubrimos en esta lección sobre lógica y declaraciones if.
A menudo queremos ser capaces de hacer cosas "condicionalmente" en nuestros programas: queremos ser capaces de decir "si esta cosa es verdad, entonces haz X, pero si esta otra cosa es verdad, entonces haz Y". Es como cuando despertamos por la mañana: "si afuera está lloviendo, entonces llevo un paraguas, pero si está soleado, me pongo lentes de sol". Podemos hacer cosas condicionalmente en nuestros programas al usar declaraciones if y declaraciones if/else combinadas con expresiones condicionales.
Una declaración if le dice al programa que ejecute un bloque de código, si una condición es verdadera. En el siguiente código, escribimos un mensaje solo si x es mayor que 0:
var x = 5;

if (x > 0) {
   text('¡x es un número positivo!', 200, 200);
}
Como x es 5, que es mayor que 0, veríamos el mensaje en la pantalla. Si cambiáramos x a -1, no veríamos el mensaje, ya que x no sería mayor que 0.
Al x > 0 es lo que llamamos una expresión condicional, que quiere decir que es una expresión que se evalúa a true (verdadero) o a false (falso). Cuando un valor es true (verdadero) o false (falso), lo llamamos valor booleano (a diferencia de un número o de una cadena). Por ejemplo, podríamos simplemente desplegar la expresión condicional:
text(x > 0, 200, 200); // Despliega "true"
También podríamos almacenarla en una variable y luego desplegarla:
var isPositive = x > 0;
text(isPositive, 200, 200);
Entonces diríamos que isPositive almacena un valor booleano, porque es true (verdadero) o false (falso), dependiendo del valor que le demos a x.
Tenemos muchas maneras de crear expresiones condicionales que se evalúan como true (verdadero) o false (falso), porque tenemos muchos operadores de comparación. Aquí están los más populares:
Supón que tenemos la siguiente variable, aquí están los operadores de comparación y expresiones más comunes que serían verdaderas con ellos:
var myAge = 28;
OperadorSignificadoExpresiones verdaderas
===Igualdad estrictamyAge === 28
!==Desigualdad estrictamyAge !== 2928 !== 29
>Mayor quemyAge > 2528 > 25
>=Mayor o igual quemyAge >= 2828 >= 28
<Menor quemyAge < 3028 < 30
<=Menor o igual quemyAge <= 2828 <= 28
Es un error muy común confundir el operador de asignación (=) con el operador de igualdad (===), porque los dos usan signos de igual, pero son muy diferentes. El operador de asignación en realidad va a cambiar el valor de la variable, mientras que el operador de igualdad solo leerá el valor de la variable y verá si es igual a algo. Por ejemplo:
var x = 2 + 2; // Le da el valor 4

if (x === 4) { // Hace la pregunta, "¿esto es igual a 4?"
   text("¡si, 2 + 2 = 4!", 200, 200);
}
A veces queremos combinar varias comparaciones en una misma expresión condicional, y por eso tenemos operadores lógicos. Estos operadores nos permiten decir cosas como "si X y Y son verdaderos" o "si X o Y son verdaderos" en nuestros programas.
Si queremos exigir que dos condiciones sean verdaderas, podemos usar el operador && ("y"):
var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside > 70 && numberOfClouds < 5) {
  text("¡Ponte bloqueador solar!", 200, 200);
}
A menudo usamos eso en nuestros programas para verificar si la posición del ratón de un usuario está dentro de un rectángulo (para imitar un botón), en cuyo caso necesitamos varios operadores &&:
rect(100, 50, 100, 100);

mousePressed = function() {
    if (mouseX > 100 && mouseX < 200 && mouseY > 50 && mouseY < 150) {
      text("¡Lo presionaste!", 80, 75);
    }
};
Si solo nos preocupa que al menos una condición sea verdadera, entonces podemos usar el operador || ("o"):
var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside > 70 || numberOfClouds < 5) {
  text("¡Ponte bloqueador solar si hace calor o si no hay muchas nubes!", 200, 200);
}
Podemos usar && y || en la misma expresión, si tenemos que verificar una condición muy complicada. Solo usa paréntesis para agrupar expresiones, de manera que el programa no se confunda acerca del orden para evaluarlas:
var myAge = 28;
if ((myAge >= 0 && myAge < 3)  || myAge > 90) {
  println('Aún no estás en tu mejor momento.');
}
Ahora regresemos a las declaraciones if. Muchas veces queremos ejecutar un bloque de código en el caso en el que la condición if no sea cierta. En ese caso, agregamos una declaración else.
var age = 28;
if (age > 16) {
  println('¡Yupi, puedes manejar!');
} else {
  println('Lo siento, pero debes tener ' + (16 - age) + ' años para poder manejar.');
}
A veces queremos revisar varias condiciones y hacer diferentes cosas dependiendo de cada una, en cuyo caso podemos usar else if:
var age = 20;
if (age >= 35) {
  println('¡Puedes votar Y ocupar cualquier puesto en el gobierno!');
} else if (age >= 30) {
  println('¡Puedes votar Y postularte para senador!');
} else if (age >= 18) {
  println('¡Puedes votar!');
} else {
  println('¡No tienes voz en el gobierno!');
}
Puedes seguir revisando condiciones tanto como quieras. Solo asegúrate de que cada una de tus condiciones sea realmente alcanzable. Prueba tu código al cambiar las variables hasta llegar hasta adentro de cada uno de los bloques de código, de modo que sepas que todo funciona.
Como ojalá podrás ver, los condicionales son una parte importante de programar y nos permiten crear programas mucho más poderosos y flexibles.

¿Quieres unirte a la conversación?

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