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 temperature = 9;
if (temperature > 20) {
System.out.println("put on a shirt");
} else { // Here the temperature is less than (or equal to) 20
if (temperature > 10) {
System.out.println("put on a sweater");
} else { // Here the temperature is less than (or equal to) 10
if (temperature > 0) {
System.out.println("put on a raincoat");
} else // Here the temperature is less than 0
System.out.println("put on a coat");
}
}
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 temperature = 9;
if (temperature > 20) {
System.out.println("put on a shirt");
} else if (temperature > 10) { // Here the temperature is less than (or equal to) 20
System.out.println("put on a sweater");
} else if (temperature > 0) { // Here the temperature is less than (or equal to) 10
System.out.println("put on a raincoat");
} else { // Here the temperature is less than 0
System.out.println("put on a coat");
}
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 age
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 Solution {
public static void main(String[] args) {
Scanner console = new Scanner(System.in); // Create a Scanner object
int a = console.nextInt(); // Read the first number from the keyboard
int b = console.nextInt(); // Read the second number from the keyboard
if (a < b) // If a is less than b
System.out.println(a); // we display a
else // otherwise
System.out.println(b); // we display b
}
}
GO TO FULL VERSION