Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] Qué pasa si no escribo el else if?

Hola a todos !!! El código sin el else if, funciona y quería saber si sería una mala práctica dejarlo así y por qué

public class JuegoDeAdivinacion {
    public static void main(String[] args) {

                Scanner lector = new Scanner(System.in);
                int numeroGenerado = new Random().nextInt(100); // genera un número aleatorio entre 0 y 100
                int intentos = 0;

                while (intentos < 5) {
                    System.out.print("Introduzca un número entre 0 e 100: ");
                    int numeroDelUsuario = lector.nextInt();
                    intentos++;

                    if (numeroDelUsuario == numeroGenerado) {
                        System.out.println("Felicidades, adivinaste el número en " + intentos + " intentos!");
                        break; // interrumpe el loop while
                    } 
                    if (numeroDelUsuario < numeroGenerado) { //<-----------------------saqué el else
                        System.out.println("El número que escribiste es menor al número generado.");
                    } else {
                        System.out.println("El número que escribiste es mayor al número generado.");
                    }
                }

                if (intentos == 5) {
                    System.out.println("Lo siento, no conseguiste adivinar el número en 5 intentos. El número era " + numeroGenerado);
                }
            }
        }
1 respuesta

Usar else if ahorra tiempo al no tener que verificar todas las demás condiciones una vez que se ha encontrado una coincidencia.

En cambio, si usáramos múltiples if separados, el programa evaluaría todas las condiciones incluso después de encontrar una coincidencia, lo que podría ser innecesario y menos eficiente en términos de rendimiento.

En el código que proporcionaste, con dos declaraciones if, el programa evaluaría si el número ingresado por el usuario es igual al número aleatorio, pero también verificaría si es menor, incluso si la primera evaluación resulta verdadera. Esto significa que incluso si el usuario adivina correctamente el número, el programa seguirá verificando la segunda condición.

Sin embargo, si utilizamos else if, una vez que el programa ha comprobado que el número ingresado es igual al número aleatorio, no tiene por qué verificar las condiciones adicionales porque ya ha encontrado una coincidencia. El uso de else if permite que el programa se detenga en la primera coincidencia y no evalúe las condiciones restantes, lo que hace que el código sea más eficiente.