Olá Guilherme, tudo bem?
Você pode usar o break
para encerrar a execução de um while
. Porém, em relação ao seu código, diríamos que ele não está utilizando uma boa prática: você sabe qual a condição para interromper o loop do while
. Logo, como boa prática, colocaríamos essa condição dentro do while
em si.
Mas olhando o seu código mais a fundo, podemos ver outros problemas. Se o usuário não conseguir acertar na primeira vez, ele entra no while. Caso ele acerte dentro do while, em momento algum há um aviso que ele já está logado no sistema.
Nesse caso, eu usaria uma outra estrutura: do...while()
. Ele vai executar o código pelo menos uma vez e continuar até que uma determinada condição definida no while seja satisfeita.
Logo, o código ficaria assim:
var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var contador = 0;
var logado = false;
do {
if (contador > 0) {
alert("Login ou senha estão incorretos. Número de tentativas: " + contador + " de 3");
}
var loginAcesso = prompt("Digite o login:");
var senhaAcesso = prompt("Digite a senha:");
if (loginAcesso == loginCadastrado && senhaAcesso == senhaCadastrada) {
logado = true;
alert("Seja bem-vindo, " + loginCadastrado + ".");
break;
}
contador += 1;
}
while (contador < 4)
if (!logado) {
alert("Número de tentativas excedidas. Conta bloqueada.");
}
Nesse caso, como eu não sei em qual tentativa o usuário acerta a senha, eu uso o break para sair do loop.
Espero ter ajudado. Se ficou alguma dúvida, me avisa que tentarei ajudar mais =)
Cussa