You are on page 1of 5

Condiciones compuestas con operadores lógicos.

Hasta ahora hemos visto los operadores:
relacionales (>, <, >=, <= , ==, !=) matemáticos (+, -, *, /, %)

pero nos están faltando otros operadores imprescindibles:
lógicos (&&, ||).

Estos dos operadores se emplean fundamentalmente en las estructuras condicionales para agrupar varias condiciones simples.

Operador &&

Traducido se lo lee como ?Y?. Si la Condición 1 es verdadera Y la condición 2 es verdadera luego ejecutar la rama del verdadero. Cuando vinculamos dos o más condiciones con el operador ?&&?, las dos condiciones deben ser verdaderas para que el resultado de la condición compuesta de Verdadero y continúe por la rama del verdadero de la estructura condicional. La utilización de operadores lógicos permiten en muchos casos plantear algoritmos más cortos y comprensibles.

Problema:
Confeccionar un programa que lea por teclado tres números distintos y nos muestre el mayor. Diagrama de flujo:

Si una de las condiciones simples da falso la CONDICION COMPUESTA da Falso y continua por la rama del falso. En esta segunda estructura condicional no se requieren operadores lógicos al haber una condición simple. analizamos el contenido de num2 y num3 para ver cual tiene un valor mayor.Este ejercicio está resuelto sin emplear operadores lógicos en un concepto anterior del tutorial. En caso de ser Falsa la condición. Es decir que se mostrará el contenido de num1 si y sólo si num1>num2 y num1>num3. La primera estructura condicional es una ESTRUCTURA CONDICIONAL COMPUESTA con una CONDICION COMPUESTA. . Podemos leerla de la siguiente forma: Si el contenido de la variable num1 es mayor al contenido de la variable num2 Y si el contenido de la variable num1 es mayor al contenido de la variable num3 entonces la CONDICION COMPUESTA resulta Verdadera.

print(num2). System. Problema: Se carga una fecha (día.in).print("Ingrese segundo valor:"). } else { if (num2>num3) { System. num1=teclado.nextInt().out.print(num1).nextInt(). }else { System. mes y año) por teclado.util.Programa: import java. int num1. febrero o marzo) Cargar por teclado el valor numérico del día.out. mes y año. if (num1>num2 && num1>num3) { System.out.print(num3). System.Scanner. num2=teclado. Cuando vinculamos dos o más condiciones con el operador ?Or". luego ejecutar la rama del Verdadero. System. con que una de las dos condiciones sea Verdadera alcanza para que el resultado de la condición compuesta sea Verdadero.out.out.nextInt().print("Ingrese primer valor:"). num3=teclado. public class CondicionesCompuestas1 { public static void main(String[] ar) { Scanner teclado=new Scanner(System. Diagrama de flujo: .out. Ejemplo: dia:10 mes:1 año:2010. Si la condición 1 es Verdadera O la condición 2 es Verdadera.num3.print("Ingrese tercer valor:").num2. } } } } Operador || Traducido se lo lee como ?O?. Mostrar un mensaje si corresponde al primer trimestre del año (enero.

int dia. System.nextInt(). Mostramos el mensaje "Corresponde al primer trimestre" en caso que el mes ingresado por teclado sea igual a 1.out. dia=teclado.util.out.La carga de una fecha se hace por partes. } .Scanner. if (mes==1 || mes==2 || mes==3) { System.mes.nextInt(). 2 ó 3. ingresamos las variables dia.print("Corresponde al primer trimestre"). mes=teclado.in). mes y año. año=teclado. Programa: import java. System.print("Ingrese nro de día:"). public class CondicionesCompuestas2 { public static void main(String[] ar) { Scanner teclado=new Scanner(System.nextInt().out. System.año. En la condición no participan las variables dia y año.print("Ingrese nro de mes:").print("Ingrese nro de año:").out.

2º Cuadrante: x < 0 Y y > 0. Posteriormente imprimir en pantalla en que cuadrante se ubica dicho punto. luego verificar si dicha fecha corresponde a Navidad. 4. mostrar el sueldo a pagar. Se pide confeccionar un programa que lea los datos de entrada e informe: a) Si el sueldo es inferior a 500 y su antigüedad es igual o superior a 10 años. otorgarle un aumento de 5 %. otorgarle un aumento del 20 %. si al menos uno de los valores ingresados es menor a 10.) 6. imprimir en pantalla la leyenda "Todos los números son menores a diez". 5. imprimir en pantalla la leyenda "Alguno de los números es menor a diez". Se ingresan por teclado tres números. Escribir un programa que pida ingresar la coordenada de un punto en el plano. si todos los valores ingresados son menores a 10. etc. b)Si el sueldo es inferior a 500 pero su antigüedad es menor a 10 años. De un operario se conoce su sueldo y los años de antigüedad. (1º Cuadrante si x > 0 Y y > 0 . 7. Escribir un programa en el cual: dada una lista de tres valores numéricos distintos se calcule e informe su rango de variación (debe mostrar el mayor y el menor de ellos) . Se ingresan por teclado tres números. c) Si el sueldo es mayor o igual a 500 mostrar el sueldo en pantalla sin cambios. 2. es decir dos valores enteros x e y (distintos a cero). 3. si todos son iguales se imprime la suma del primero con el segundo y a este resultado se lo multiplica por el tercero. Realizar un programa que pida cargar una fecha cualquiera.} } Problemas propuestos 1. Se ingresan tres valores por teclado.