El documento explica los fundamentos de los condicionales en Java. Define qué son los condicionales y cómo se usan las sentencias if, else y else if para tomar decisiones en el flujo del programa dependiendo de las condiciones. También cubre los operadores de relación como ==, >, >= y != que se usan para comparar valores y cadenas. Además, describe cómo anidar condicionales para tomar múltiples decisiones y la sentencia switch como alternativa a múltiples if/else anidados.
3. ¿Qué es un condicional?
- Por favor, ¿qué camino debo tomar
para abandonar este lugar?
- Eso depende -contestó el Gato sin
abandonar su sonrisa.
- Depende, ¿de qué?
- Pues del lugar a donde quieras ir.
- Me es igual ir a un lado que a otro.
- Entonces, poco importa el camino a
tomar.
“Alicia en el País de las Maravillas”
Lewis Carroll
4. ¿Qué son los condicionales?
• Llamamos condicional
cuando queremos que
el programa “tome una
decisión” sobre un
asunto.
• La computadora puede
imprimir un mensaje
diferente, según mi
edad.
5. ¿Qué son los condicionales?
Queremos hacer un programa que primero me
pregunte mi edad e imprima “eres mayor de
edad” si soy mayor a dieciocho inclusive.
int edad;
(…)
if(edad >= 18)
{
System.out.println(“Eres mayor de edad”);
}
6. ¿Qué son los condicionales?
• El programa anterior imprimirá “eres mayor
de edad” si la variable edad vale 18 o si
vale más de dieciocho.
• Si ingreso una edad menor, no hace nada.
• ¿Qué tengo que hacer para que imprima
“eres menor de edad”, si lo soy? ¿Y para
que me diga que tengo dieciocho?
7. ¿Qué son los condicionales?
• En este otro ejemplo se hace así.
if(edad == 18)
System.out.println(“Tienes dieciocho”);
if(edad >= 18)
System.out.println(“Eres mayor de edad”);
if(edad < 18)
System.out.println(“Eres menor de edad”);
¿Te fijaste?
– No fue necesario poner llaves. Esto se puede si sólo voy a
poner una línea dentro del “if”.
– Si cae dieciocho, entonces hay dos mensajes.
8. ¿Qué son los condicionales?
• La hermana de la sentencia “if” es la sentencia “else”.
En inglés quiere decir otra cosa. En nuestro contexto
significa si no.
• O sea, para decirle a la computadora “si la persona tiene
veinte años entonces imprime… pero si no, entonces
imprime esta otra cosa” se hace así:
if(edad == 20)
System.out.println(“Somos de la misma edad.”);
else
System.out.println(“Ahh!, no tienes mi edad.”);
9. ¿Qué es un condicional?
• Con la sentencia “if”
podemos tomar una
decisión.
• Con la sentencia “else”
hacemos algo si no ocurre
el “if”
• Con el “else if” podemos
hacer que la computadora
elija uno entre varios
caminos.
10. Ejericio
• Haz un programa que lea la edad e imprima
un mensaje diferente para cada segmento de
edad:
– Menor a diez años
– Menor o igual a veinte
– Menor o igual a treinta
– Mayor a treinta.
12. Operadores de Relación
• Para comparar cantidades
numéricas hay seis
posibles operadores:
– Igual (==)
– Diferente (!=)
– Mayor o igual (>=)
– Menor (<)
– Menor o igual (<=)
– Mayor (>)
13. Operadores de Relación
• Para comparar cadenas de texto se hace así:
If(cadena1.equals(cadena2))
{
System.out.println(“Las cadenas son iguales”);
}
• No debes usar el operador de igual (==) para cadenas, porque JAVA
considerará que son diferentes aunque valgan igual.
• También existe “equalsIgnoreCase” que compara sin importat
mayúsculas/minúsculas.
14. Operadores de Relación
• Además de los operadores anteriores, para hacer
condiciones más complejas, se utilizan operadores
lógicos.
• Son los siguientes:
– Operador “Y” (&&)
– Operador “O” (||)
– Operador “no” (!)
• Significan lo mismo que en el lenguaje corriente.
• El operador “no” se usa antes de la expresión.
15. Operadores de Relación
• Con estos operadores lógicos se pueden hacer
condiciones un poco más complejas como: si
tengo 10 ó 20 años, si me llamo “Rodrigo” y soy
de “Guatemala”, etc.
if(edad==10 || edad==20)
System.out.println
(“A tu edad me enfermé gravemente”);
16. Operadores de Relación
• Otras cosas sobre los operadores lógicos:
– A veces habrá que usar paréntesis para que la
condición haga sentido.
– A propósito de las comparaciones de cadenas, para
hacer una condición de cadenas “distintas” se usa el
operador lógico “no” junto con el “equals”.
– Se pueden mezclar con operadores lógicos una
condición de números con una de cadenas.
18. ¿Qué son condicionales anidados?
• Aprendimos a tomar un
camino entre varios
posibles. ¿Y si después
de eso tenemos que
volver a elegir?
• ¿Y si tenemos que
tomar muchas
decisiones para llegar a
la respuesta final?
19. Condicionales Anidados
• Imagina que nuestro programa ahora
pregunta nuestro nombre, nuestra edad,
nuestro NIT si somos mayores, nos
pregunta si estudiamos o no, en qué colegio
estudiamos, etc. ¿Cómo lo harías?
• El ejemplo está en tu bandeja de correo.
21. La Sentencia switch
• La sentencia switch sirve para ahorrar tiempo y
código.
int mes=8;
switch(mes)
{ case 1: System.out.print(“enero”); break;
case 2: System.out.print(“febrero”); break;
case 3: System.out.print(“marzo”); break;
(...)
default: System.out.print(“Mes inválido”);
break;
}
22. La Sentencia switch
• La sentencia switch tiene una función
muy parecida a la que tendrían muchos if /
else if / else.
• La sentencia switch sólo trabaja con
variables de tipo byte, short, char e
int.
• La función que cumple un default es la
misma que un else.
23. La Sentencia switch
• Si omitimos la sentencia break, podemos
combinar los casos.
switch (month) {
case 1:
case 3:
(...)
case 10:
case 12:
numDias = 31; break;
case 4:
case 6:
case 9:
case 11:
numDias = 30; break;
case 2:
numDias = 28; break;
}
24. Tarea
• Haz un programa de seguridad que
pregunte el nombre de usuario, y después
pregunte la contraseña.
• El progama debe reconocer tres usuarios,
y cada uno con una contraseña distinta
como es obvio.
• Debe imprimir un mensaje de error si no
es ninguno de los tres usuarios.
• Debe imprimir un mensaje de bienvenida
si la contraseña es correcta, y un mensaje
de error si es incorrecta.