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

3.1.7 Validación de contraseña

Hola, comparto mi código correspondiente a la validación de contraseña

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String contrasena = "123456";
        String contrasenaUsuario;
        int intento = 0;

        while (intento == 0){
            System.out.println("Ingresa la contraseña: ");
            Scanner scanner = new Scanner(System.in);
            contrasenaUsuario = scanner.next();

            if (contrasena.equals(contrasenaUsuario)){
                System.out.println("Acceso permitido");
                intento = 1;
            } else {
                System.out.println("Acceso denegado");
            }
        }
    }
}
1 respuesta

Hola Nelli, espero que estés bien

Tu código para la validación de contraseña está casi perfecto, pero hay un pequeño detalle que podrías ajustar para que funcione exactamente como se espera. Actualmente, el programa sigue pidiendo la contraseña incluso después de que el acceso ha sido permitido. Esto ocurre porque el Scanner se está creando dentro del bucle while, lo cual no es necesario y puede causar problemas de recursos. Además, sería una buena práctica cerrar el Scanner al final del uso para evitar posibles fugas de recursos.

Aquí tienes una versión ajustada de tu código:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String contrasena = "123456";
        String contrasenaUsuario;
        boolean accesoPermitido = false;

        Scanner scanner = new Scanner(System.in);

        while (!accesoPermitido) {
            System.out.println("Ingrese la contraseña: ");
            contrasenaUsuario = scanner.next();

            if (contrasena.equals(contrasenaUsuario)) {
                System.out.println("¡Acceso permitido!");
                accesoPermitido = true;
            } else {
                System.out.println("¡Acceso denegado!");
            }
        }
        
        scanner.close();
    }
}

En esta versión, he cambiado la variable intento por un booleano accesoPermitido para hacer el código más legible y lógico. Además, el Scanner se declara fuera del bucle y se cierra al final, lo cual es una buena práctica.

Espero que esta solución te sea útil y te ayude a avanzar en tu aprendizaje. ¡Bons estudios!