Páginas

Diferencia entre else if y if anidados

Ambos permiten evaluar múltiples condiciones, pero funcionan de manera diferente:

else if - Condiciones mutuamente excluyentes

Solo se ejecuta UNA opción. Cuando encuentra una condición verdadera, ignora el resto.

    
public class EjemploElseIf {
    public static void main(String[] args) {
        int nota = 85;
        
        if (nota >= 90) {
            System.out.println("Excelente");
        } else if (nota >= 80) {
            System.out.println("Muy bien");
        } else if (nota >= 70) {
            System.out.println("Bien");
        } else {
            System.out.println("Necesitas mejorar");
        }
    }
}
    

Resultado: Muy bien

Solo imprime UNA opción, aunque 85 también es >= 70.

if anidados - Condiciones independientes dentro de otras

Evalúa condiciones una dentro de otra. Cada if interno solo se evalúa si el externo es verdadero.


public class EjemploIfAnidados {
    public static void main(String[] args) {
        boolean tieneLicencia = true;
        int edad = 20;
        
        if (tieneLicencia) {
            System.out.println("Tiene licencia");
            
            if (edad >= 18) {
                System.out.println("Puede conducir solo");
            } else {
                System.out.println("Debe ir acompañado");
            }
        }
    }
}

Comparación Visual

else if: (una sola opción)


¿nota >= 90? → NO
¿nota >= 80? → SÍ → "Muy bien" → SE DETIENE
¿nota >= 70? → No se evalúa        

if anidados:(condiciones dentro de otras)


¿tieneLicencia? → SÍ → "Tiene licencia"
    └─ ¿edad >= 18? → SÍ → "Puede conducir solo"        

Ejemplo donde se ve la diferencia clara

Con else if:


int numero = 10;

if (numero > 5) {
    System.out.println("Mayor que 5");
} else if (numero > 0) {
    System.out.println("Mayor que 0");
}

Resultado: Mayor que 5 (solo uno)

Con if independientes (no anidados):


int numero = 10;

if (numero > 5) {
    System.out.println("Mayor que 5");
}
if (numero > 0) {
    System.out.println("Mayor que 0");
}

Resultado:


Mayor que 5
Mayor que 0

(ambos se ejecutan porque son independientes)

¿Cuándo usar cada uno?

  • else if: Cuando solo quieres que se ejecute UNA opción (calificaciones, menús, categorías)
  • if anidados: Cuando necesitas verificar condiciones adicionales DENTRO de otra condición (permisos, validaciones por niveles)