Académique Documents
Professionnel Documents
Culture Documents
Gua 3 - Condiciones
INTRODUCCION
Cuando deseamos hacer operaciones bsicas suele ser fcil pensar que no tiene mayor
complejidad, pero que pasa si quisiramos realizar una divisin de enteros. Es fcil, ya
sabemos cmo hacerlo, utilizando variables y operadores. Pero nos queda un mal recuerdo
con la divisin por cero. Podemos establecer una condicin que permita la divisin para
todos los nmeros y que rechace cualquier divisor que sea cero. Disponemos de dos
opciones: realizar o no la divisin. Tambin una condicin: el divisor sea distinto de cero.
La estructura de seleccin simple en Java se realiza mediante la sentencia if (si, en ingls). La
sintaxis es la siguiente:
if (condicin) sentencia;
La condicin es una expresin booleana. La sentencia se ejecuta solamente si la expresin
booleana es verdadera.
Retomando el problema de la divisin, incorporamos una estructura de seleccin para
realizar la operacin libre de ceros.
Programacin Cientfica I
Prof. Lusvin de Len
04/02/16
if (condicin) sentencia 1;
else sentencia 2;
Si la condicin es verdadera se ejecuta la sentencia 1 en caso contrario se ejecuta la sentencia
2. Ambas sentencias nunca se ejecutarn al mismo tiempo, son excluyentes.
Ahora ampliemos el programa para mostrar una advertencia en el caso que se encuentre un
cero.
04/02/16
if (condicin) {
sentencia;
} else {
sentencia;
}
Lamentablemente no siempre nos encontraremos con condiciones tan sencillas. Muchas
veces tendremos que recurrir a proposiciones compuestas para formar una condicin. Para
ello podemos recurrir a operadores relacionales o lgicos. Recuerden que siempre debe dar
como resultado un valor booleano.
Supongamos que deseamos saber si un ao es bisiesto. Sabemos que debe ser mltiplo de
4. Para esto tendremos que verificar si el mdulo es igual a cero.
ao % 4 == 0
Pero no debe ser mltiplo de 100.
( ao % 4 == 0 ) && ( ao % 100 != 0 )
A menos que sea mltiplo de 400.
Programacin Cientfica I
Prof. Lusvin de Len
04/02/16
Los conectores lgicos nos permiten simplificar la estructura. Sin ellos nos veramos en la
necesidad de anidar las sentencias. Veamos qu ocurre si en el ejemplo anterior descartamos
el AND y el OR.
if ( x % 4 == 0 ) {
if ( x % 100 == 0 ) {
if ( x % 400 == 0 ) {
System.out.println("Es bisiesto");
} else {
System.out.println("No es bisiesto");
}
} else {
System.out.println("Es bisiesto");
}
} else {
System.out.println("No es bisiesto");
}
Parece complicado, pero nos demuestra muchas cosas. En primer lugar observamos que se
pueden anidar las sentencias if-else. Cada resultado de una condicin puede caer en una
nueva comprobacin para formar una estructura compleja de seleccin.
Hoja de trabajo
1. Un programa que lea por teclado tres nmeros distintos y nos muestre el mayor.
2. Un programa que lea por teclado dos nmeros distintos y nos muestre el orden
ascendente de los mismos.
3. Se carga una fecha (da, mes y ao) por teclado. Mostrar un mensaje si corresponde
al primer trimestre del ao (enero, febrero o marzo) Cargar por teclado el valor
numrico del da, mes y ao. Ejemplo: da: 10 mes:1 ao:2010.
4. Realizar un programa que pida cargar una fecha cualquiera, luego verificar si dicha
fecha corresponde a Navidad.
5. De un operario se conoce su sueldo y los aos de antigedad. Se pide confeccionar
un programa que lea los datos de entrada e informe:
a) Si el sueldo es inferior a 500 y su antigedad es igual o superior a 10 aos, otorgarle
un aumento del 20 %, mostrar el sueldo a pagar.
b) Si el sueldo es inferior a 500 pero su antigedad es menor a 10 aos, otorgarle un
aumento de 5 %.
c) Si el sueldo es mayor o igual a 500 mostrar el sueldo en pantalla sin cambios.
Programacin Cientfica I
Prof. Lusvin de Len
04/02/16