Estructuras de Decisién
f Por Lic. José Salvador Olivares
xg Cudndo evaluamos
condiciones
» El programa tiene que realizar tareas dependiendo de
las condiciones que se le presenten. Por ejemplo si
un numero es negativo o el salario excede el valor
permitido.
» Java debe de_ tener la forma de como hacer que
nuestro programa ejecute su ldgica dependiendo de
las decisiones que deba de tomar.
» Por ejemplo si un valor esta fuera de un rango de
valores, si una edad es invalida o si un nombre esta
vacio.g Condicional "if’ Sencillo
» Sintaxis de if:
if (condicion) {
instracciones,
» La condici6n es unavexpresion que evalua a un
booleano (true o false)»
» Si la condicién evalda a true la condicién se
cumple y se ejecutan las instrucciones dentro de
la estructura.
m__’ Si la condici6n evalua a false, no se ejecuta nada.
Z Ejemplo con “if “ Sencillo
public class EvaluarEdad {
public static void main (String[ ] args}{
int edad;
edad = 25;
if (edad >= 18){
System.out.printIn(“Mayor de Edad.
éQué hace este programa?éComo funciona la clase
EvaluarEdad con el if sencillo?
» Si la variable edad es mayor o igual a 18 afios el
programa imprime “Mayor de edad“
» Si la edad es menor que 18 el programa no
imprime nada.
» En el condicional if sencillo solo evaluamos si la
condicion se cumple, si no se cumple el
programa no hace nada.
Zz Condicionales Alternativos
java
» El condicional if sencillo nos permite ejecutar
un conjunto de instrucciones si se cumple
una condicion. Si la condicion no se cumple el
programa no hace nada.
» Pero en la mayoria de ocasiones tenemos que
realizar una tarea si la condicién se cumple o
no en lugar de no hacer nada.
» Para resolver el caso mencionado tenemos
ns que utilizar el condicional alternativo if-elseZz Condicional “if-else”
» Sintaxis de if else:
if (condicion) {
instriicciones if;
yelse{
instrugciones else;
» La condicién jes una expresién que evaltia a un
booleano (true o false).
» Si la expresign evalia a true la ‘condicién se cumple y
se ejecuta el/conjunto de /nstrucciones if.
» Si la expresion evalua a false se ejecuta el conjunto
m __deinstrucciones else.
zg Ejemplo con “if -else”
public class EvaluarEdad {
public static void main (String[] args){
int edad:
edad = 25;
if (edad >= 18) {
System.out.printIn(“Mayor de edad...”);
Felse {
System.out.printin(“Menor de edad...”);
Qué hace este programa?éComo funciona la clase
Java’ EvaluarEdad con el if else?
» Si la variable edad es mayor o igual a 18 el
programa imprime “Mayor de edad“
» Si la edad es menor que 18 el programa
imprime “Menor de edad”.
» En el condicional if else evaluamos si la
condicién se cumple 0 no.
Condicionales Anidadas
Hemos evaluado el condicional if sencillo y el
condicional if else alternativo.
» Que debemos de hacer si queremos evaluar mas
de dos posibilidades, es decir si queremos
evaluar varias alternativas.
En este caso debemos de utilizar un condicional
if-else y dentro del else colocar otro condicional
if-else hasta evaluar todas las posibles
condiciones.
»A esto se le conoce como condicionales
me anidadas.tt
Condicionales Anidadas
z
|
» Sintaxis de if-else anidado:
if (condicion!) {
instrucciones 1,
}else if (condicion2) {
instrucciones2,;
}else if (condicionZ) {
instrucciones3,; Si_se cumple condicion? se
yelse{ ejecuta las Vnstrucclones]:
instruccionesN,
Sise cumple la condicion2 se
ejecuta las instrucciones?.
Si_se cumple la condicion3 se
ejecuta las instrucciones3.
Si no. se cumple ninguna
> condi ge eects
Ejemplo con
ia if -else anidado
public static void main (String[] args){
int edad;
edad = 25;
if (edad >— 18){
Systern.out pind Mayer dead oe
Jelke if (edad >= 15) £
System.out.printin(“Adolescente.
}else :
1 System.outprintin¢Menor de ed
— +Qué hace este programa?iComo funciona Ia clase
EvaluarEdad con e/
if else anidado?
» Si la edad es mayor de 18 se imprime “Mayor de
edad”.
>» Si la edad esta entre 15 y 17 se imprime
“Adolescente”
» Si la edad es menor de 15 se imprime “Menor de
edad”.
Zz Condicional “switch”
» La instrucci6n switch() es una instrucci6n de
decisién miltiple similar al if-else anidado, donde
el programa busca el valor asignado a una variable
el cual es comparado con una lista de valores ya
sea enteros o char definida por el programador.
Cuando el programa encuentra coincidencia con el
valor de igualdad entonces se ejecuta las
instrucciones asociados a dicho valor, si el
programa no encuentra el valor de igualdad,
entonces ejecuta las instrucciones definidas en la
tm clausula default.EB Instruccion "switch"
Sintaxis: los valores valori, valor2...
switch (expresion) { deben ser literales.
‘case va/or?
instrucciones!
break: Los valores valor?, valor2
case va/or2: tienen que ser de tipo byte,
instrucciones2; char, short o int.
break;
defiute La instrucc ak es
“instrucciones ara. que el
break rograma no evalue todos
los Casos.
Instruccién "switch”
Sila, expresion evalua | el
i is: valor se ejecuta las
» Sintaxis: instrucciones 1.
switch (expresion)L Si_ la, expresi6n evalua el
case valor). * alor2._ se | ejecuta las
Mid a instrucciones2.
reek;
case valor2. Si la expresién evalua el
darucciones?: alorN se ejecuta las
real; instruccionesN.
case valorN:
str gectarash, Si el valor no es contemplado
ent por ningtin case se ejecuta
ies instruccionesN (valor default)
instruccionesN,
+ El default 55 ppelonal en la
instruccion switch.Zs Ejemplo con switch
Java
public class Meses {
public static void main (String[ ] args) {
int mes = 12;
switch (mes) {
case 1:
System.out printin ("Enero");
break;
case 2:
System.out.printin ("Febrero");
break;
case 12.
System.out.printin ("Diciembre");
break;
default:
System.out.printin("Mes no valido....")
}
|
gs Notas importantes
» La instruccién switch solo se puede utilizar con
los tipos de datos byte, char, short e int.
» Si queremos utilizar otros tipos de datos por
ejemplo: float, double, boolean y String es
obligatorio utilizar condicionales anidados.
» Con condicionales anidados podemos hacer lo
que hace la instruccién switch, pero con la
instrucci6n switch tenemos limitantes ya que
solo permite valores enteros y valores char. No
podemos utilizar el tipo de dato String en el
ndicional switch.