<meta charset="utf-8">
<script>
function pulaLinha() {
document.write("<br><br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var maximaTentativa = 3;
var tentativaAtual = 1;
while (tentativaAtual == tentativaAtual) {
var loginInformado = prompt("Digite seu login");
var senhaInformada = prompt("Digite sua senha");
if (loginInformado == loginCadastrado || senhaInformada == senhaCadastrada) {
alert("Bem-vindo a página!");
} else {
if (tentativaAtual + 1 <= maximaTentativa){
alert("Tente novamente.");
tentativaAtual = tentativaAtual + 1;
} else {
if (tentativaAtual == maximaTentativa) {
alert("Você atingiu o número máximo de tentativas.");
maximaTentativa = tentativaAtual + 1;
}
}
}
}
</script>
Demorei, mas consegui entender o que estava fazendo a página não carregar. Alguns probleminhas que encontrei e consegui resolver:
- O depurador acusou que sintaxe do script estava errada, mas na verdade era problema no fechamento dos if's e else's.
- Depois houve problema em carregar a página até a tentativa limite (3).
- E por seguinte pulou-se o número de tentativas, como se a primeira tentativa fosse a limite.
Resolução
Da parte em que se faz a tentativas até a tentativa limite, mudei o comando que esta errado e coloquei o a tentativa limite no final já que primeiro o navegador irá ler se o usuário errou o login e senha e só depois ele vai solicita para que tente novamente.
Como era:
} else {
if (tentativaAtual == maximaTentativa) {
alert("Você atingiu o número máximo de tentativas.");
tentativaAtual + 1 = tentativa + 1 == maximaTentativa; // Aliás, isso aqui foi o motivo da minha dor de cabeça.
} else {
if (tentativaAtual + 1 <= maximaTentativa){
alert("Tente novamente.");
tentativaAtual = tentativaAtual + 1;
}
Como ficou:
} else {
if (tentativaAtual + 1 <= maximaTentativa){
alert("Tente novamente.");
tentativaAtual = tentativaAtual + 1;
} else {
if (tentativaAtual == maximaTentativa) {
alert("Você atingiu o número máximo de tentativas.");
maximaTentativa = tentativaAtual + 1;
}