Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Alguém pode me ajudar a achar o erro?

Meu código não está funcionando... Quando digito senha e usuário correto ele mostra a mensagem de boas vindas e encerra normal. Porém, quando digito a senha errada ele aparece a mensagem de login inválido 4 vezes e para, não volta a pedir pra digitar novamente. Onde estou errando?

    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";

    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");
    var tentativas = 0;

    while (tentativas <= 3) {
    if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

        alert("Bem-vindo ao sistema " + loginInformado);
        break;

    } else {

        alert("Login inválido. Tente novamente");

        }
        tentativas++
    }
4 respostas
solução!

Olá Juliana, a mensagem solicitando os dados não era exibida pois dentro do loop definido não estava especificando para solicitar os dados, somente informava que o login era invalido. O código abaixo funcionar como você espera. Abraços

var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var numeroMaximoLoginInvalido = 2;


var tentativas = 0;
var usuarioLogado = false;

while (true) {
    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");
    if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
                usuarioLogado = true;
        alert("Bem-vindo ao sistema " + loginInformado);
        break;

    }
      tentativas++   

    if(tentativas == numeroMaximoLoginInvalido){
        alert("Login inválido. Quantidade de tentativas excedida.");
        break;
    }
    alert("Login inválido. Tente novamene");
    loginInformado = prompt("Informe seu login");
    senhaInformada = prompt("Informe sua senha");
}

Muito obrigada, Edilson! Agora estou tentando achar uma forma de apresentar uma mensagem de tentativas excedidas após digitar a senha ou login três vezes errado, mas ainda não descobri. Vou continuar testando.

Olá Juliana a implementação abaixo pode te ajudar

var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var numeroMaximoLoginInvalido = 2;


var tentativas = 0;
var usuarioLogado = false;

while (true) {
    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");
    if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
                usuarioLogado = true;
        alert("Bem-vindo ao sistema " + loginInformado);
        break;

    }
      tentativas++   

    if(tentativas == numeroMaximoLoginInvalido){
        alert("Login inválido. Quantidade de tentativas excedida.");
        break;
    }
    alert("Login inválido. Tente novamene");
    loginInformado = prompt("Informe seu login");
    senhaInformada = prompt("Informe sua senha");
}

Oi, Edilson!

Gostei da sugestão! No meu código fiz um pouquinho diferente, ficou assim:

var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";

    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");
    var tentativas = 1;

    while (tentativas < 3) {
    if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

        alert("Bem-vindo ao sistema " + loginInformado);
        break;

    } else {

        alert("Login inválido. Tente novamente");
    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");

        }
        tentativas++

    if (tentativas == 3) {
        alert("Número de tentativas excedido. Acesso bloqueado.");
    }
    }

Mas foi a sua solução que virou a chavinha. Muito obrigada! Fiquei horas enroscada nesse exercício.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software