A solicitação do login pode ser deslocada para fora do while() para que o usuário não tenha que informar este dado em cada tentativa de acesso.
A solicitação do login pode ser deslocada para fora do while() para que o usuário não tenha que informar este dado em cada tentativa de acesso.
Olá Robson! Como vai?
A sua sugestão faz bastante sentido e pode tornar a experiência do usuário mais eficiente. Quando você desloca a solicitação do login para fora do loop while, o usuário só precisa informar o login uma única vez, e depois pode tentar a senha quantas vezes forem necessárias. Isso pode ser feito da seguinte maneira:
Scanner scanner = new Scanner(System.in);
// Solicita o login uma vez antes do loop
System.out.print("Digite seu login: ");
String login = scanner.nextLine();
boolean acessoPermitido = false;
int tentativas = 0;
// Loop para validar a senha
while (!acessoPermitido && tentativas < 3) {
System.out.print("Digite sua senha: ");
String senha = scanner.nextLine();
// Aqui você faria a validação do login e senha
if (validarLoginESenha(login, senha)) {
acessoPermitido = true;
System.out.println("Acesso concedido!");
} else {
tentativas++;
System.out.println("Senha incorreta. Tente novamente.");
}
}
if (!acessoPermitido) {
System.out.println("Número máximo de tentativas alcançado. Acesso bloqueado.");
}
scanner.close();
Neste exemplo, o usuário informa o login uma vez e depois só precisa tentar inserir a senha corretamente. Isso pode melhorar a usabilidade do seu programa, especialmente se o login for um dado que não muda com frequência.
Espero ter ajudado e bons estudos!