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

EJERCICIO - Validación de Codigo y Permiso

Aclaro lo siguiente, intente desarrollarlo de dos formas distintas al intentar "reducir las lineas" y como resultado tube lo siguiente:

PD: estoy abierto a todo tipo de critica constructiva bien explicada para poder optimizar mejor el codigo xd

import java.util.Scanner;

public class VerificaciónCodigoDeAccesoYPermisos {
    public static void main(String[] args) {

        Scanner entrada = new Scanner(System.in);

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

        System.out.println("Ingrese el nivel de permiso");
        int nivelDePermisoDigitado = entrada.nextInt();

        //PROCESO METODO 1

//        if (codigoAcceso == 2023){
//
//            if (nivelDePermisoDigitado == 1 || nivelDePermisoDigitado == 2 || nivelDePermisoDigitado == 3){
//
//                System.out.println("Acceso permitido. ¡Bienvenido al sistema!");
//
//            } else {
//
//                System.out.println("nivel de permiso inválido");
//
//            }
//
//        } else if (nivelDePermisoDigitado == 1 || nivelDePermisoDigitado == 2 || nivelDePermisoDigitado == 3) {
//
//            System.out.println("código incorrecto");
//
//        } else {
//
//            System.out.println("ambos estan mal");
//
//        }

        // PROCESO METODO 2

        if (codigoAcceso == 2023 && (nivelDePermisoDigitado == 1 || nivelDePermisoDigitado == 2 || nivelDePermisoDigitado == 3) ){

            System.out.println("Acceso permitido. ¡Bienvenido al sistema!");

        } else if (codigoAcceso != 2023 && (nivelDePermisoDigitado == 1 || nivelDePermisoDigitado == 2 || nivelDePermisoDigitado == 3) ) {

            System.out.println("código incorrecto");

        } else if (codigoAcceso == 2023 && (nivelDePermisoDigitado < 1 || nivelDePermisoDigitado > 3)) {

            System.out.println("nivel de permiso inválido");

        } else {
            System.out.println("ambos estan mal");
        }

    }
}
1 respuesta

Hola Lenin, espero que estés bien

¡Gracias por compartir tu código y estar abierto a críticas constructivas! Vamos a revisar los dos métodos que has implementado.

Método 1: Este método es más detallado y utiliza anidación de condicionales if para verificar cada condición por separado. Aunque es más extenso, puede ser más fácil de entender para alguien nuevo en programación, ya que cada condición se evalúa de manera secuencial.

Método 2: Este método es más conciso y utiliza operadores lógicos para combinar las condiciones. Es una buena práctica cuando quieres reducir el número de líneas y hacer el código más compacto. Sin embargo, puede ser un poco más difícil de leer para principiantes.

Ambos métodos son correctos y cumplen con los requisitos del ejercicio. Sin embargo, podrías optimizar un poco más el segundo método para mejorar la legibilidad. Aquí tienes una sugerencia:

import java.util.Scanner;

public class VerificaciónCodigoDeAccesoYPermisos {
    public static void main(String[] args) {

        Scanner entrada = new Scanner(System.in);

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

        System.out.println("Ingrese el nivel de permiso");
        int nivelDePermisoDigitado = entrada.nextInt();

        boolean codigoCorrecto = (codigoAcceso == 2023);
        boolean permisoValido = (nivelDePermisoDigitado >= 1 && nivelDePermisoDigitado <= 3);

        if (codigoCorrecto && permisoValido) {
            System.out.println("Acceso permitido. ¡Bienvenido al sistema!");
        } else if (!codigoCorrecto && permisoValido) {
            System.out.println("código incorrecto");
        } else if (codigoCorrecto && !permisoValido) {
            System.out.println("nivel de permiso inválido");
        } else {
            System.out.println("ambos estan mal");
        }
    }
}

En esta versión, he introducido dos variables booleanas (codigoCorrecto y permisoValido) para almacenar los resultados de las condiciones. Esto mejora la legibilidad, ya que los if se vuelven más claros al leer.

Espero que estos consejos te sean útiles y te ayuden a seguir mejorando tu código. ¡Bons estudos!