Está en la página 1de 5

9 - Condiciones compuestas con operadores lgicos

Hasta ahora hemos visto los operadores:

relacionales (>, <, >=, <= , ==, !=)


matemticos (+, -, *, /, %)

pero nos estn faltando otros operadores imprescindibles:

lgicos (&&, ||).

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

Operador &&

Traducido se lo lee como ?Y?. Si la Condicin 1 es verdadera Y la condicin 2 es verdadera luego ejecutar la rama del
verdadero.
Cuando vinculamos dos o ms condiciones con el operador ?&&?, las dos condiciones deben ser verdaderas para
que el resultado de la condicin compuesta de Verdadero y contine por la rama del verdadero de la estructura
condicional.
La utilizacin de operadores lgicos permiten en muchos casos plantear algoritmos ms cortos y comprensibles.

Problema:
Confeccionar un programa que lea por teclado tres nmeros distintos y nos muestre el mayor.

Diagrama de flujo:

converted by W eb2PDFConvert.com
Este ejercicio est resuelto sin emplear operadores lgicos en un concepto anterior del tutorial. 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.
Si una de las condiciones simples da falso la CONDICION COMPUESTA da Falso y continua por la rama del falso.
Es decir que se mostrar el contenido de num1 si y slo si num1>num2 y num1>num3.
En caso de ser Falsa la condicin, analizamos el contenido de num2 y num3 para ver cual tiene un valor mayor.
En esta segunda estructura condicional no se requieren operadores lgicos al haber una condicin simple.

Programa:

converted by W eb2PDFConvert.com
import java.util.Scanner;

public class CondicionesCompuestas1 {


public static void main(String[] ar) {
Scanner teclado=new Scanner(System.in);
int num1,num2,num3;
System.out.print("Ingrese primer valor:");
num1=teclado.nextInt();
System.out.print("Ingrese segundo valor:");
num2=teclado.nextInt();
System.out.print("Ingrese tercer valor:");
num3=teclado.nextInt();
if (num1>num2 && num1>num3) {
System.out.print(num1);
} else {
if (num2>num3) {
System.out.print(num2);
}else {
System.out.print(num3);
}
}
}
}

Operador ||

Traducido se lo lee como ?O?. Si la condicin 1 es Verdadera O la condicin 2 es Verdadera, luego ejecutar la rama
del Verdadero.
Cuando vinculamos dos o ms condiciones con el operador ?Or", con que una de las dos condiciones sea Verdadera
alcanza para que el resultado de la condicin compuesta sea Verdadero.

Problema:
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: dia:10 mes:1 ao:2010.

Diagrama de flujo:

converted by W eb2PDFConvert.com
La carga de una fecha se hace por partes, ingresamos las variables dia, mes y ao.
Mostramos el mensaje "Corresponde al primer trimestre" en caso que el mes ingresado por teclado sea igual a 1, 2
3.
En la condicin no participan las variables dia y ao.

Programa:

import java.util.Scanner;
public class CondicionesCompuestas2 {
public static void main(String[] ar) {
Scanner teclado=new Scanner(System.in);
int dia,mes,ao;
System.out.print("Ingrese nro de da:");
dia=teclado.nextInt();
System.out.print("Ingrese nro de mes:");
mes=teclado.nextInt();
System.out.print("Ingrese nro de ao:");
ao=teclado.nextInt();
if (mes==1 || mes==2 || mes==3) {
System.out.print("Corresponde al primer trimestre");
}
}
}

Problemas propuestos
1. Realizar un programa que pida cargar una fecha cualquiera, luego verificar si dicha fecha corresponde a Navidad.

2. Se ingresan tres valores por teclado, si todos son iguales se imprime la suma del primero con el segundo y a este
resultado se lo multiplica por el tercero.

converted by W eb2PDFConvert.com
3. Se ingresan por teclado tres nmeros, si todos los valores ingresados son menores a 10, imprimir en pantalla la
leyenda "Todos los nmeros son menores a diez".

4. Se ingresan por teclado tres nmeros, si al menos uno de los valores ingresados es menor a 10, imprimir en
pantalla la leyenda "Alguno de los nmeros es menor a diez".

5. Escribir un programa que pida ingresar la coordenada de un punto en el plano, es decir dos valores enteros x e y
(distintos a cero).
Posteriormente imprimir en pantalla en que cuadrante se ubica dicho punto. (1 Cuadrante si x > 0 Y y > 0 , 2
Cuadrante: x < 0 Y y > 0, etc.)

6. 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.

7. Escribir un programa en el cual: dada una lista de tres valores numricos distintos se calcule e informe su rango de
variacin (debe mostrar el mayor y el menor de ellos)

Solucin

Retornar

converted by W eb2PDFConvert.com

También podría gustarte