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

[Sugerencia] Propuesta de solución para el ejercicio de verificación de código de acceso y nivel de permiso

Buenas tardes,

Comparto mi solución al ejercicio propuesto:

package com.camilodev.ejercicios.condicionales;

import java.util.List;
import java.util.Scanner;

public class AccesoYNivelDePermiso {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        final int CODIGO_DE_ACCESO = 2023;
        // final int[] NIVELES_DE_PERMISO = {1, 2, 3};
        final List<Integer> NIVELES_DE_PERMISO = List.of(1, 2, 3); // lista inmutable

        boolean permiso = false;

        System.out.println("Ingrese el código de acceso:");
        int codigoAcceso = input.nextInt();

        System.out.println("Ingrese el nivel de permiso:");
        int nivelPermiso = input.nextInt();

        for(int nivel : NIVELES_DE_PERMISO){
            if(nivel == nivelPermiso){
                permiso = true;
                break;
            }
        }

        if(codigoAcceso == CODIGO_DE_ACCESO && permiso){
            System.out.println("Acceso permitido. ¡Bienvenido al sistema!");
        }else {
            if(codigoAcceso != CODIGO_DE_ACCESO && !permiso){
                System.out.println("Código incorrecto y nivel de permiso inválido");
            }else if(codigoAcceso != CODIGO_DE_ACCESO){
                System.out.println("Código de acceso incorrecto");
            }else {
                System.out.println("Nivel de permiso invalido");
            }
        }
    }
}

Cualquier sugerencia es bienvenida.

Gracias por su atención.

1 respuesta

Hola Camilo, espero que estés bien

¡Gracias por compartir tu solución! Tu código parece estar bien estructurado y cumple con los requisitos del ejercicio. Aquí tienes algunas sugerencias para mejorar o simplificar tu solución:

  1. Uso de contains para verificar el nivel de permiso: Ya que estás utilizando una lista inmutable para los niveles de permiso, puedes usar el método contains de la lista para verificar si el nivel de permiso ingresado es válido. Esto puede hacer tu código un poco más limpio y directo.

    boolean permiso = NIVELES_DE_PERMISO.contains(nivelPermiso);
    
  2. Mensajes de salida: Los mensajes de salida son claros y cumplen con los requisitos. Sin embargo, si deseas hacerlos más detallados, podrías incluir el nivel de permiso o el código incorrecto en el mensaje, aunque esto es opcional y depende de tus preferencias.

  3. Cerrar el Scanner: Es una buena práctica cerrar el objeto Scanner después de su uso para liberar recursos. Puedes hacerlo añadiendo input.close(); al final de tu programa.

Espero que estas sugerencias te sean útiles. ¡Espero haber ayudado y buenos estudios!