1. Secuencia de declaraciones if
A veces, un programa necesita realizar muchas acciones diferentes dependiendo del valor de una variable o del valor de una expresión.
Supongamos que nuestra tarea es algo así:
- Si la temperatura es mayor que
20
grados, ponte una camisa - Si la temperatura es mayor que
10
grados y menor que (o igual a)20
, ponte un suéter - Si la temperatura es mayor que
0
grados y menor que (o igual a)10
, ponte un impermeable - Si la temperatura es menor que
0
grados, ponte un abrigo.
Así es como esto puede ser representado en código:
int temperatura = 9;
if (temperatura > 20) {
System.out.println("ponte una camisa");
} else { // Aquí la temperatura es menor o igual a 20
if (temperatura > 10) {
System.out.println("ponte un suéter");
} else { // Aquí la temperatura es menor o igual a 10
if (temperatura > 0) {
System.out.println("ponte un impermeable");
} else // Aquí la temperatura es menor que 0
System.out.println("ponte un abrigo");
}
}
Las declaraciones if-else
pueden anidarse entre sí. Esto hace posible implementar una lógica bastante compleja en un programa.
Sin embargo, los programadores generalmente escriben esta construcción de manera un poco diferente:
int temperatura = 9;
Si (temperatura > 20) {
System.out.println("ponte una camisa");
} else if (temperatura > 10) { // Aquí la temperatura es menor que (o igual a) 20
System.out.println("ponte un suéter");
} else if (temperatura > 0) { // Aquí la temperatura es menor que (o igual a) 10
System.out.println("ponte un impermeable");
} else { // Aquí la temperatura es menor que 0
System.out.println("ponte un abrigo");
}
Los dos ejemplos dados son equivalentes, pero el segundo es más fácil de entender.
2. Matices del bloque else
Si no se utilizan llaves en una construcción de if-else
, entonces el else
se refiere al if
previo más cercano.
Ejemplo:
Nuestro código | Cómo funcionará |
---|---|
|
|
Si observamos el código de la izquierda, pareciera que la salida en pantalla sería "No tienes que trabajar". Pero en realidad, ese no es el caso. En realidad, el bloque else
y la sentencia "No tienes que trabajar" están asociados con la segunda instrucción if
(la más cercana).
En el código de la derecha, se resaltan en rojo las instrucciones if
y else
asociadas. Además, las llaves están colocadas de forma inequívoca, mostrando claramente qué acciones se realizarán. La cadena No tienes que trabajar nunca se muestra cuando edad
es mayor que 60
.
3. Ejemplo del uso de un if-else
statement
Ya que hemos explorado if-else
statement tan a fondo, veamos un ejemplo:
import java.util.Scanner;
public class Solución {
public static void main(String[] args) {
Scanner consola = new Scanner(System.in); // Crear un objeto Scanner
int a = consola.nextInt(); // Leer el primer número del teclado
int b = consola.nextInt(); // Leer el segundo número del teclado
if (a < b) // Si a es menor que b
System.out.println(a); // mostramos a
else // de lo contrario
System.out.println(b); // mostramos b
}
}
GO TO FULL VERSION