4
respostas

O código na "opinião do instrutor'' tem um erro (comentários no final do codigo)

<meta charset="UTF-8">

<script>

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

    var maximoTentativas = 3;
    var tentativaAtual = 1;

    while(tentativaAtual <= maximoTentativas) {

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

        if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

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

            tentativaAtual = maximoTentativas; // acertou, então foço o gasto de todas as tentativas para sair do loop. Lá embaixo vai incrementar + 1! 

        } else {

            alert("Login ou senha inválidos. Tente novamente");
        }

        tentativaAtual++; // vai para a próxima tentativa

    }

</script>

quando inserido o login correto, o código pede login novamente.

ps: tentei fazer com que tentativaAtual fosse 4 ou maior, até mesmo tentei inserir tentativaAtual = 100 e o looping continuou por pelo menos uma vez mais.

não consigo perceber o erro que faz com que o looping aconteça uma vez mais. não consegui acertar de primeira o exercício, mas estava indo pelo caminho que o colega Felipe Augusto postou (infelizmente não percebi como parar o looping), até ver a opinião do instrutor, mas que tem esse looping a mais.

4 respostas

Testei o código da opinião do instrutor e funcionou perfeitamente. Se acerto o login e senha de primeira, recebo a mensagem de login e o programa para de perguntar. Se erro, ele pergunta o login e a senha novamente, que é algo comum.

Jamais em um sistema de autenticação, login e senha, se o usuário só acertar o login e errar a senha, você só pode pedir a senha. Daí, o cara que esta tentando hackear seu sistema saberá que que acertou o login e poderá ficar tentando acertar a senha.

Sucesso e bom estudo meu aluno.

Flavio, eu também testei e mesmo colocando o usuário e senha corretos, ele pede mais uma vez o usuário e senha. Consegui a solução usando o "break". Não tem como haver engano pq eu copiei o mesmo código.

O exercício mostra o código com problema. A resposta do instrutor mostra a solução. Foi esse que você estou? você digitou usuario alura e a senha alura321?

<meta charset="UTF-8">

<script>

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

    var maximoTentativas = 3;
    var tentativaAtual = 1;

    while(tentativaAtual <= maximoTentativas) {

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

        if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

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

            tentativaAtual = maximoTentativas; // acertou, então foço o gasto de todas as tentativas para sair do loop. Lá embaixo vai incrementar + 1! 

        } else {

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

       // vai para a próxima tentativa
        tentativaAtual = tentativaAtual +1  
    }

</script>

Funcionou o login e senha de primeira, ele exibe a mensagem de boas-vindas e para de repetir.

Aguardando seu retorno meu aluno.

Eu tive o mesmo problema, cometi um pequeno erro, parecia o código como era o do professor, só consegui resolver abrindo o código do professor em outra aba e analisando o que estava errado.