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

[Ejercicio] Verificación de código de acceso y nivel de permiso

Para el presente ejercicio realice la siguiente solución en donde utilice if/else en cascada y dentro de un ciclo if/else, para tomar validaciones de acceso así como en los casos en el cual alguno de los elementos sea verdadero o todos sean falsos, ahora procedo a mostrar la respuesta:

public class Main {
    public static void main(String[] args) {
        Seguridad seguridad = new Seguridad();
        seguridad.ingresarInformacion();
        seguridad.verificarIngreso();
    }

}


import java.util.Scanner;

public class Seguridad {
    final int CLAVE= 2023;
    private int claveUsuario;
    private int nivelMinimo = 1;
    private int nivelMaximo = 3;
    private int nivelUsuario;
    Scanner teclado = new Scanner(System.in);

    public void  ingresarInformacion(){
        System.out.println("Ingrese el cíodigo de acceso: ");
        claveUsuario = teclado.nextInt();
        System.out.println("Ingrese el nivel de permiso: ");
        nivelUsuario = teclado.nextInt();
    }

    public void verificarIngreso() {
        if (claveUsuario == CLAVE && (nivelUsuario >= nivelMinimo && nivelUsuario <= nivelMaximo)) {
            System.out.println("Acceso permitido ¡Bienvenido al sistema!");
        } else {
            if (claveUsuario != CLAVE && (nivelUsuario >= nivelMinimo && nivelUsuario <= nivelMaximo)) {
                System.out.println("""
                        Acceso denegado. Motivo(s):
                        Código de acceso incorrecto.
                        """);
            } else if(claveUsuario == CLAVE && (nivelUsuario < nivelMinimo || nivelUsuario > nivelMaximo )) {
                System.out.println("""
                         Acceso denegado. Motivo(s):
                         Nivel de permiso inválido."
                        """);
            }else {
                System.out.println("""
                        Acceso denegado. Motivo(s):
                         Nivel de permiso inválido."
                         Código de acceso incorrecto.
                        
                        """);
            }
        }
    }


}
1 respuesta

Hola Edwin, espero que estés bien

¡Espero que estés teniendo un buen día! He revisado tu código y parece que estás en el camino correcto para resolver el ejercicio. Has implementado correctamente el uso de if/else para verificar el acceso basado en el código y el nivel de permiso.

Aquí hay algunas observaciones y sugerencias que podrían ayudarte a mejorar o verificar tu solución:

  1. Uso de if/else en cascada: Has utilizado correctamente if/else en cascada para manejar los diferentes escenarios de acceso denegado. Esto asegura que se evalúen todas las posibles combinaciones de entrada incorrecta.

  2. Mensajes de salida: Tu código ya proporciona mensajes claros sobre el motivo del acceso denegado, lo cual es excelente. Asegúrate de que los mensajes sean claros para el usuario final.

  3. Pruebas de casos extremos: Asegúrate de probar tu programa con diferentes combinaciones de entradas para verificar que todos los casos posibles están cubiertos. Por ejemplo:

    • Código correcto y nivel de permiso correcto.
    • Código incorrecto y nivel de permiso correcto.
    • Código correcto y nivel de permiso incorrecto.
    • Ambos incorrectos.
  4. Uso de Scanner: Estás utilizando Scanner para recibir entradas del usuario, lo cual es adecuado para este tipo de ejercicios interactivos.

En general, tu solución parece estar bien alineada con los requisitos del ejercicio. Si encuentras algún comportamiento inesperado al probar diferentes entradas, revisa las condiciones if para asegurarte de que cubren todos los casos posibles.

Espero haber ayudado y buenos estudios!