Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Contrasena


public class Main {
    public static void main(String[] args) {
        Password usuario1 = new Password();

        usuario1.enterPassword();

    }
}
import java.util.Scanner;

public class Password {
    Scanner scanner = new Scanner(System.in);
    private String password = "abc123";
    private int intentos = 2;
    private String intento;

    public void enterPassword (){

        while (!this.password.equals(intento)) {


            System.out.println("Enter the password");
            intento = scanner.next();
            if (this.password.equals(intento)) {
                System.out.println("Access allowed");
                break;
            } else if (intentos == 0){
                System.out.println("Access blocked. Contact IT.");
                break;
            }else{
                System.out.println("Access denied. Try again.");
                intentos--;
            }
        }



    }

    public String getIntento() {
        return intento;
    }

    public void setIntento(String intento) {
        this.intento = intento;
    }

    public int getIntentos() {
        return intentos;
    }

    public void setIntentos(int intentos) {
        this.intentos = intentos;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
1 respuesta
solución!

Hola Gerardo, espero que estés bien

¡Espero que estés bien! He echado un vistazo a tu código y parece que estás trabajando en un sistema de verificación de contraseñas. Tu implementación es bastante buena, pero hay un pequeño detalle que podrías ajustar para mejorar el funcionamiento.

En tu clase Password, estás utilizando un bucle while para solicitar la contraseña hasta que el usuario la ingrese correctamente o se agoten los intentos. Sin embargo, hay un pequeño problema: la variable intento no está inicializada antes de entrar en el bucle, lo que podría causar un comportamiento inesperado.

Para solucionar esto, te sugiero que inicialices la variable intento con un valor vacío antes del bucle while. Aquí te dejo un ejemplo de cómo podrías hacerlo:

public void enterPassword() {
    intento = ""; // Inicializar la variable intento

    while (!this.password.equals(intento)) {
        System.out.println("Enter the password");
        intento = scanner.next();
        if (this.password.equals(intento)) {
            System.out.println("Access allowed");
            break;
        } else if (intentos == 0) {
            System.out.println("Access blocked. Contact IT.");
            break;
        } else {
            System.out.println("Access denied. Try again.");
            intentos--;
        }
    }
}

Con este cambio, te aseguras de que la variable intento tenga un valor inicial antes de comenzar el bucle. Esto debería ayudar a que tu programa funcione de manera más predecible.

Espero que esta sugerencia te sea útil y que puedas continuar avanzando en tu proyecto. ¡Sigue con el buen trabajo!

Espero haber ayudado y buenos estudios!