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

Contrasenas


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

Hola Gerardo, espero que estés bien

¡Espero que estés bien! He revisado tu código y parece que estás en el camino correcto para implementar un sistema de validación de contraseñas. Sin embargo, hay algunos detalles que podrías ajustar para que funcione tal como esperas.

  1. Inicialización de la variable intento: En el ciclo while, estás comparando intento con this.password antes de que intento tenga un valor asignado. Esto puede causar un comportamiento inesperado. Asegúrate de inicializar intento antes de la comparación, o dentro del ciclo antes de la primera comparación.

  2. Lógica de intentos: Estás disminuyendo el número de intentos después de cada intento fallido, lo cual es correcto. Sin embargo, asegúrate de que el mensaje de "Access blocked. Contact IT." se muestre solo cuando los intentos se hayan agotado.

  3. Mensajes de salida: Los mensajes de salida deben coincidir con los esperados en el ejercicio. Asegúrate de que los mensajes como "Access allowed" y "Access blocked" estén en el idioma y formato correctos según las instrucciones del ejercicio.

Aquí tienes una versión ajustada del método enterPassword():

public void enterPassword() {
    while (intentos >= 0) {
        System.out.println("Ingrese la contraseña:");
        intento = scanner.next();
        
        if (this.password.equals(intento)) {
            System.out.println("¡Acceso permitido!");
            break;
        } else {
            intentos--;
            if (intentos < 0) {
                System.out.println("¡Acceso bloqueado! Contacta a TI.");
            } else {
                System.out.println("¡Acceso denegado! Intenta de nuevo.");
            }
        }
    }
}

Con estos ajustes, tu programa debería funcionar de acuerdo con las expectativas del ejercicio. Espero que esto te ayude a avanzar en tu proyecto.

¡Espero haber ayudado y buenos estudios!