Hola Jesús, espero que estés bien
Tu código está casi completo, pero hay un pequeño detalle en la lógica de las condiciones que podrías ajustar para que funcione según lo requerido. El problema está en cómo se evalúa la condición inicial del if
.
Actualmente, tu código verifica si el codigoAcceso
no es 2023 y si el nivelAcceso
no es 1, 2 o 3 al mismo tiempo. Esto significa que solo mostrará "Código de acceso y nivel de acceso son incorrectos" si ambos son incorrectos simultáneamente. Sin embargo, según la descripción de la actividad, deberías verificar cada caso por separado para informar el motivo específico de la denegación.
Aquí tienes una versión ajustada de tu código:
import java.util.Scanner;
public class CodigoAcceso {
public static void main(String[] args) {
int codigoAcceso;
int nivelAcceso;
Scanner entrada = new Scanner(System.in);
System.out.print("Ingresa tu código de acceso: (númerico 4 dígitos)");
codigoAcceso = entrada.nextInt();
System.out.print("Ingresa tu nivel de acceso: (debe ser del 1 al 3)");
nivelAcceso = entrada.nextInt();
entrada.close();
if (codigoAcceso == 2023) {
if (nivelAcceso == 1 || nivelAcceso == 2 || nivelAcceso == 3) {
System.out.println("Acceso permitido. ¡Bienvenido al sistema!");
} else {
System.out.println("Acceso Denegado. Nivel de acceso incorrecto.");
}
} else {
if (nivelAcceso != 1 && nivelAcceso != 2 && nivelAcceso != 3) {
System.out.println("Código de acceso y nivel de acceso son incorrectos.");
} else {
System.out.println("Acceso Denegado. Código de acceso incorrecto");
}
}
}
}
Con este ajuste, el programa primero verifica si el codigoAcceso
es correcto y luego comprueba el nivelAcceso
. Si el código es incorrecto, también verifica si el nivel es incorrecto para proporcionar el mensaje adecuado.
Espero haber ayudado y buenos estudios!