Lección 21. Declaración else if.

Utilizamos la instrucción else if para especificar una nueva condición si la primera condición (if) es false.

Copiar código
if (condicion1) {
  //Bloque de código que se ejecutará si condicion11 es true
} else if (condicion2) {
  // Bloque de código que se ejecutará si condicion1 es false y condicion2 es true
} else {
  // Bloque de código que se ejecutará si condicion1 es false y condition2 es false
}

Pensemos en ello como en la vida real: Si llueve, traiga un paraguas. De lo contrario, si hace sol, use gafas de sol. De lo contrario, simplemente salga normalmente.

Ejemplo:

Copiar código
int weather = 2;

if (weather == 1) {
  System.out.println("Llevar paraguas");
} else if (weather == 2) {
  System.out.println("Use gafas de sol");
} else {
  System.out.println("Simplemente salga normalmente");
}

// Salida: "Use gafas de sol"

Dado que weather es 2, la primera condición if (weather == 1) no se cumple, por lo que se omite el bloqueo. A continuación, el programa comprueba la condición else if (weather == 2), que es true. Eso significa que el bloque else if corre e imprime "Use gafas de sol".

Otro ejemplo:

Copiar código
int time = 22;

if (time < 10) {
  System.out.println("Good morning.");
} else if (time < 18) {
  System.out.println("Good day.");
} else {
  System.out.println("Good evening.");
}

// Salida: "Good evening."

Declaración de Operador Ternario._

También hay una abreviatura if else, que se conoce como operador ternario que consta de tres operandos.

Se puede utilizar para reemplazar varias líneas de código con una sola línea, y se usa con mayor frecuencia para reemplazar declaraciones simples if else:

Copiar código
variable = (condicion) ? expressionTrue :  expressionFalse;

En lugar de escribir:

Copiar código
int time = 20;

if (time < 18) {
  System.out.println("Good day.");
} else {
  System.out.println("Good evening.");
}

Escribimos:

Copiar código
int time = 20;

String result = (time < 18) ? "Good day." : "Good evening.";

System.out.println(result);

Anidación de ifs._

También podemos colocar una declaración if dentro de otro archivo if. Esto se denomina instrucción if anidado.

Un if anidado nos permite comprobar una condición solo si otra condición ya está en true.

Copiar código
if (condicion1) {
  // Código a ejecutar si la condición1 es true
  if (condicion2) {
    // Código a ejecutar si la condition1 y condition2 es true
  }
}

Por ejemplo:

Copiar código
int x = 15;
int y = 25;

if (x > 10) {
  System.out.println("x es mayor a 10");
  
  //if anidado
  if (y > 20) {
    System.out.println("y tambien es mayor a 20");
  }
}

Salida:

Copiar código
x es mayor a 10  
y tambien es mayor a 20