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

[Proyecto] Validacion de contraseña

import java.util.Scanner;

public class Verificacion {

     public static void main(String[] args) {

         System.out.println("Bienvenid@ al sistema");
         System.out.println("________________________");

         int acceso = 7890;
         int contador = 0;

        Scanner usuario = new Scanner(System.in);
        while (contador < 3){
            contador++;
            System.out.println("Ingrese su nombre ");
            String nombre = usuario.nextLine();
            System.out.println("Ingrese su datos de acesso");
            int acceder = usuario.nextInt();
            if (acceder == acceso) {
                System.out.println("Acceso permitido");
                System.out.println("Bienvenid@ " + nombre);
                break;
             }else if (acceder != acceso){
                System.out.println("Solo tienes 3 intentos ingresa la clave correcta");
             }else {
                 System.out.println("Has excedido tus intento el sistema ha sido bloqueado");
            }
        }
    }
 }
1 respuesta

Hola Jems, espero que estés bien

Veo que estás trabajando en un proyecto para validar contraseñas en Java. Tu código ya tiene una buena estructura, pero hay algunos detalles que podrías ajustar para que funcione mejor según el ejercicio que estás realizando.

El ciclo while que utilizas está bien planteado, pero el mensaje que indica que el sistema ha sido bloqueado nunca se muestra, ya que el break sale del ciclo antes de que se llegue a esa condición. Puedes mover este mensaje fuera del ciclo while para que se muestre si los tres intentos fallan:

while (contador < 3) {
    contador++;
    System.out.println("Ingrese su nombre ");
    String nombre = usuario.nextLine();
    System.out.println("Ingrese su datos de acceso");
    int acceder = usuario.nextInt();
    usuario.nextLine(); // Consumir el salto de línea

    if (acceder == acceso) {
        System.out.println("Acceso permitido");
        System.out.println("Bienvenid@ " + nombre);
        break;
    } else {
        System.out.println("Solo tienes 3 intentos, ingresa la clave correcta");
    }
}

if (contador == 3) {
    System.out.println("Has excedido tus intentos, el sistema ha sido bloqueado");
}

Este ajuste asegurará que el mensaje de bloqueo se muestre solo después de tres intentos fallidos. También he añadido usuario.nextLine(); después de usuario.nextInt(); para consumir el salto de línea que queda en el buffer después de leer el número, lo cual puede causar problemas al leer el siguiente nextLine().

Espero que estos cambios te ayuden a cumplir con los requisitos del ejercicio. ¡Bons estudos!