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

Verificación de código de acceso y nivel de permiso

import java.util.Scanner;

public class SystemAccess {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int accessCode = 2023;

        System.out.println("Ingrese el código de acceso:");
        int inputCode = scanner.nextInt();
        System.out.println("Ingrese el nivel de permiso:");
        int inputLevel = scanner.nextInt();
        scanner.close();

        boolean isValidCode = inputCode == accessCode;
        boolean isValidLevel = inputLevel >= 1 && inputLevel <= 3;

        if (isValidCode && isValidLevel) {
            System.out.println("Acceso permitido. ¡Bienvenido al sistema!");
        } else {
            System.out.println("Acceso denegado.");
            System.out.println("Motivo(s):");
            String reason = "";

            if (!isValidCode) {
                reason += """
                        - Código de acceso incorrecto.
                        """;
            }

            if (!isValidLevel) {
                reason += """
                        - Nivel de permiso inválido.
                        """;
            }

            System.out.print(reason);
        }
    }
}
1 respuesta

Hola Esteban, espero que estés bien

Tu código para verificar el acceso al sistema parece estar bien estructurado y cumple con los requisitos del ejercicio. Estás comprobando correctamente si el código de acceso es igual a 2023 y si el nivel de permiso está entre 1 y 3. Además, proporcionas mensajes claros sobre los motivos del acceso denegado.

Aquí hay un par de cosas que podrías considerar para mejorar o verificar:

  1. Validación de entrada: Asegúrate de que el usuario ingrese valores numéricos. Si introduces un valor que no es un número, el programa lanzará una excepción. Podrías mejorar esto añadiendo un manejo de excepciones para asegurar que el programa no falle si la entrada es incorrecta.

  2. Formateo del mensaje: El uso de """ para los mensajes de razón puede ser innecesario si estás usando Java 15 o superior, donde las cadenas de texto multilínea son soportadas. Si estás usando una versión anterior, podrías simplemente concatenar las cadenas de texto con +:

    if (!isValidCode) {
        reason += "- Código de acceso incorrecto.\n";
    }
    
    if (!isValidLevel) {
        reason += "- Nivel de permiso inválido.\n";
    }
    
  3. Pruebas adicionales: Asegúrate de probar tu programa con diferentes combinaciones de códigos de acceso y niveles de permiso para asegurarte de que todos los caminos lógicos funcionan como se espera.

Tu programa debería funcionar correctamente para los casos de prueba dados en el ejercicio. Espero que estas sugerencias te sean útiles.

¡Espero haber ayudado y buenos estudios!