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

Não entendi muito bem a resposta do ex: "Simulando uma tela de Login"

Alguém pode me dar uma explicação mais detalhada? Obrigado

<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 faço o gasto de todas as tentativas para sair do loop. Lá embaixo vai incrementar + 1! 

        } else {

            if (tentativaAtual == 3) {
                alert("Número permitido de tentativas ultrapassado!");
            } else {
                alert("Login inválido. Tente novamente");
            }
        }

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

</script>
6 respostas
solução!
<meta charset="UTF-8">

<script>

    //VARIAVEIS QUE IRAM RECEBER O USUARIO E SENHA 

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

    // Variaveis que iram ser incrementadas num laço de repetição para controlar o numero de tentativas
    var maximoTentativas = 3;
    var tentativaAtual = 1;

    // ENQUANTO (tentativaAtual MENOR IGUAL à maximoTentativas { execute
    while(tentativaAtual <= maximoTentativas) {

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

        //se (loginCadastrado IGUAL logininformado AND(Operador logico "E" senhaCadastrada IGUAL senhaInformada){ EXECUTE
        // nesta linha esta sendo utilizado para fazer 2 comparações logicas, esta linha de codigo so sera executada se as 2 linhas forem "TRUE"
        if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

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

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

        // se a execução acima do if  der "FALSE" ele ira cair no else, 
        } else {

        // neste if ele esta passando o valor tentativa = 3 para que o laço seja parado
            if (tentativaAtual == 3) {
                alert("Número permitido de tentativas ultrapassado!");
            } else {
                alert("Login inválido. Tente novamente");
            }
        }

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

</script>

Coloquei alguns comentários no código, espero que te ajude, caso tenha mais alguma duvida, manda aqui que tento deixar mais resumido e didático . Espero ter ajudado!.

Oi Rodrigo,

Qual seria sua dúvida? Ou seria no exercício todo?

Aqui você está criando as variáveis que irão armazenar o login e senha, nesse exercício seria somente esse login e senha que poderiam entrar no sistema.

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

Com o while(tentativaAtual <= maximoTentativas) { você está criando um limite de tentativas que nesse caso seriam no máximo 3

Aqui irá acontecer a verificação comparando com o que você digitou na caixa de login e senha:

if (loginCadastrado == loginInformado && senhaCadastrada == senhaInformada) {
    alert('Bem-vindo ao sistema, ' + loginInformado);

    tentativaAtual = maximoTentativas; 
  }

Caso seja o login e senha corretos o professor alterou o valor da tentativaAtual para o máximo que são 3 tentativas, com isso ele vai forçar o while a chegar ao fim da execução e não irá repetir mais.

Samuel muito bom o jeito que você explicou, então antes de começar a escrever o código não seria melhor eu tentar escrever passo a passo mais ou menos do jeito que você escreveu, para aí eu entender o contexto e escrever o código, o que acha?

Obrigado Guilherme, entao o else acompanha o if para indicar uma continuação a algo que não deu certo?

Agora estou compreendendo melhor, o código tem que ser programado para dar certo e errado (true or false)

Oi Rodrigo,

Isso mesmo o ELSE acompanha o IF, o if pode estar sozinho mas o else nunca.

E a verificação condicional que é o IF sempre verifica sim se é true ou false.

Parabéns pelo empenho nos estudos!

Continue praticando e qualquer dúvida pode contar com a gente.