Opa :) Quando acompanhei o exercício, e o código exemplo passado para nós, percebi que era possível realizá-lo apenas criando um while e um var. Criei uma variável cont (contador), para que contasse as tentativas do usuário, e inseri todo o código do exercício dentro do while (que estabelece o total de tentativas).
Com isso, criei um if else dentro do while também, para aumentar a quantidade do contador da tentativa em 1, caso o login for inválido. Caso não for, será finalizado normlamente (para finalizar, foi adicionado valor 3 ao contador, pois é o nosso valor total para a finalização do sistema).
Com o aumento da quantidade, enfim chegará em 3 tentativas. Tendo isso em mente, criei um else if dentro do while, e sua função seria informar ao usuário que o limite de tentativas foi atingido, e travar esse aviso (alert) na página. Contudo, dentro desse meu if, foi criado mais um while atribuindo o true, visto que enquanto o meu while for verdadeiro, o aviso não sumirá.
<script type="text/javascript">
var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var cont = 1; //cont ou "tentativa", define a tentativa inicial do usuário.
while(cont<=3) { //define o limite de cont, ou seja, tentativa.
var loginInformado = prompt("Informe seu login");
var senhaInformada = prompt("Informe sua senha");
if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
alert("Bem-vindo ao sistema " + loginInformado);
cont = cont+3; //recebe número total para finalizar.
}else if(cont == 3){
while(true) {
alert("Login inválido. Limite de tentativas atingido"); //apenas para informar o limite quando atingido
cont = cont+3; //recebe número total para finalizar.
}
}
else {
alert("Login inválido. Tente novamente");
cont = cont+1; //caso o login for inválido, será feito o "loop".
}
}
</script>