Hola Iván, espero que estés bien
Veo que estás trabajando en un sistema de verificación de acceso y parece que tu código ya está bastante cerca de lo que necesitas. Sin embargo, según el contexto de la actividad, necesitas proporcionar un mensaje más detallado cuando el acceso es denegado, indicando el motivo específico (código incorrecto, nivel de permiso inválido o ambos).
Aquí tienes una sugerencia de cómo podrías modificar tu código para lograrlo:
import java.util.Scanner;
public class VerificacionCodigo {
public static void main(String[] args) {
int accesoNumerico = 2023;
int[] acceso = {1, 2, 3};
Scanner digitar = new Scanner(System.in);
System.out.println("Ingrese el código de acceso:");
int usuario = digitar.nextInt();
System.out.println("Ingrese el nivel de permiso:");
int nivelAcceso = digitar.nextInt();
boolean codigoCorrecto = usuario == accesoNumerico;
boolean nivelValido = false;
for (int i = 0; i < acceso.length; i++) {
if (acceso[i] == nivelAcceso) {
nivelValido = true;
break;
}
}
if (codigoCorrecto && nivelValido) {
System.out.println("Acceso permitido. ¡Bienvenido al sistema!");
} else {
if (!codigoCorrecto && !nivelValido) {
System.out.println("Acceso Denegado! Código incorrecto y nivel de permiso inválido.");
} else if (!codigoCorrecto) {
System.out.println("Acceso Denegado! Código incorrecto.");
} else {
System.out.println("Acceso Denegado! Nivel de permiso inválido.");
}
}
}
}
Con estas modificaciones, el programa no solo verifica si el acceso es permitido, sino que también te informa exactamente por qué fue denegado si ese es el caso. Espero que estas sugerencias te sean útiles.
¡Espero haber ayudado y buenos estudios!