Contenido principal
Programación de computadoras
Curso: Programación de computadoras > Unidad 1
Lección 10: Declaraciones lógicas y condicionales (if)- Declaraciones condicionales (if)
- Desafío: pelota que rebota
- Más interacción con el ratón
- Desafío: tu primera aplicación de pintura
- Booleanos
- Desafío: analizador de números
- Operadores lógicos
- Desafío: tu primer botón
- Desafío: botón más inteligente
- If/Else - parte 1
- Desafío: tarjetas didácticas llamativas
- If/Else - parte 2
- Repaso: declaraciones lógicas y condicionales (if)
- Números aleatorios
- Proyecto: Bola 8 mágica
© 2023 Khan AcademyTérminos de usoPolítica de privacidadAviso de cookies
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;
Operador | Significado | Expresiones verdaderas | |
---|---|---|---|
=== | Igualdad estricta | myAge === 28 | |
!== | Desigualdad estricta | myAge !== 29 | 28 !== 29 |
> | Mayor que | myAge > 25 | 28 > 25 |
>= | Mayor o igual que | myAge >= 28 | 28 >= 28 |
< | Menor que | myAge < 30 | 28 < 30 |
<= | Menor o igual que | myAge <= 28 | 28 <= 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?
- Me sigue resultando un poco confuso el "else if", no entiendo exactamente bien para que sirve(14 votos)
- por ejemplo en el ultimo ejemplo que nos da:
var age = 20;
if (age >= 35) {
println('¡Puedes votar Y ocupar cualquier puesto en el gobierno!');
} else if (age >= 30) { //aqui else nos ayuda a saber que si age es mayor que 30 PERO MENOR QUE 35 debe ejecutarse esa linea de codigo.
println('¡Puedes votar Y postularte para senador!');
} else if (age >= 18) {//lo mismo aqui age sera mayor que 18 PERO MENOR QUE 30
println('¡Puedes votar!');
} else {
println('¡No tienes voz en el gobierno!');
}(17 votos)
- gran lugar para aprender(13 votos)
- Alguien evalúe mis proyectos ¡Por favor!(12 votos)
- alguien sabe lo de if else(3 votos)
- Es una segunda condición, esto por si el "if" anterior no se cumple pero hay más posibles resultados pones el "else if" para comprobar pero sin ninguna de las anteriores se cumple pones el "else"(5 votos)
- quien mas ahora 2021(5 votos)
- yo XD, ¿quieres ser mi amigo?(No tengo amigos aquí)(5 votos)
- ¿Como se completa en verde del todo en los proyectos de Khan academy(5 votos)
- Te tienen que evaluar el proyecto un tutor o un alumno.
Saludos.(7 votos)
- ¿cuantas veces podemos escribir la sentencia if aninadas?(3 votos)
- excelente explicación, buen repaso. entonces if else se utiliza para un rango de números ya dado en if como por ejemplo si
if (p <= 30 )
entonces si coloco
else if (p >= 20)
solo se estaria ejecutando bajo ese rango de entre 20 y 30
y si eso no se cumple entonces se utiliza else solo
else{ text("no valido", X, Y) }
así le entendí disculpen si me equivoco pero si le sirve a alguien es lo que yo comprendí(3 votos)