Operadores lógicos, parte 3
Parte de la sección Fundamentos del Journey de Java de Coddy. Lección 25 de 73.
Al comprobar varias condiciones, la computadora deja de comprobar en cuanto sabe la respuesta final (esto se llama evaluación de cortocircuito).
Por ejemplo:
int x = 0;
int y = 5;
boolean result = x != 0 && y / x > 2;Aquí x es igual a 0, por lo tanto, no evaluará y / x > 2. Si invirtiéramos el orden:
boolean result = y / x > 2 && x != 0;Esto provocará un error porque y se dividirá entre 0, lo cual es ilegal en matemáticas.
Esta técnica se utiliza para optimizar la evaluación de expresiones lógicas. Por ejemplo:
int a = 0;
int b = 2;
int c = 3;
int d = 5;
boolean result = (a > 0 && b < 2) || (c < -5 && d < 10);En este ejemplo, b < 2 y d < 10 no se evaluarán porque a > 0 y c < -5 son ambas falsas.
Desafío
PrincipianteCreemos un programa para decidir si es un buen día para producir energía con paneles solares
Inicializa estas variables:
isSunnycon el valor truewindSpeedcon el valor 5.4temperaturecon el valor 23solarPanelOutputcon el valor 9isCloudycon el valor false
Crea una expresión lógica que compruebe TODAS estas condiciones:
- Hace sol
- La velocidad del viento es inferior a 10
- La producción del panel solar es inferior a 15
- La temperatura es superior a 20 OR no hay nubes
Pruébalo tú mismo
public class Main {
public static void main(String[] args) {
// Inicializa las variables
// Reemplaza cada valor provisional de abajo por el valor que pide la tarea
boolean isSunny = false;
double windSpeed = 0.0;
int temperature = 0;
int solarPanelOutput = 0;
boolean isCloudy = false;
// La expresión lógica completa
// Reemplaza el valor provisional de abajo por una expresión que combine las cuatro condiciones
boolean result = false;
// No borres las líneas de abajo
System.out.println("Checking conditions for solar energy production...");
System.out.println("1. Is it sunny? " + isSunny);
System.out.println("2. Is wind speed safe? " + (windSpeed < 10));
System.out.println("3. Can panels produce more? " + (solarPanelOutput < 15));
System.out.println("4. Is temperature good OR no clouds? " + (temperature > 20 || !isCloudy));
System.out.println("\nFinal result - Good day for solar energy production: " + result);
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosOperador móduloIncremento/decrementoIncremento/decremento posteriorAtajos aritméticosOperadores de comparaciónComparación de cadenas7Entrada y salida básicas
Métodos de System.outFormato de salidaClase ScannerRepaso: hasta 120Repaso: verdadero o falso10Métodos (Funciones)
Declaración de métodosParámetros de métodosTipos de retornoSobrecarga de métodosRepaso: función SigmaRepaso: función de validaciónMétodos void13Operaciones con cadenas
Métodos de cadenas, parte 1Métodos de cadenas, parte 2Formato de cadenasComparación de cadenas5Operadores, parte 2
Operadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simpleOperadores lógicos, parte 3Operadores lógicos, parte 48Aplicación de calculadora
Mensaje de bienvenidaObtención de números3Variables Parte 2
ConstantesConvenciones de nomenclaturaRepaso: inicializar variablesConversión de tipos Parte 1Conversión de tipos Parte 26Toma de decisiones
Sentencia IfIf - ElseSentencia SwitchOperador ternarioRepaso - If ElseIf - Else anidadoPractica por tu cuenta: Compilador de Java online