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

Não consegui entender esse exercício

Eu não consegui entender o raciocínio que esse código está elaborando.


    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  
    }

Quando olho pra ele, até parece fazer sentido, mas não saberia fazer um meramente parecido com ele. Alguém pode tentar me explicar como cada linha dele funciona?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas

Fala Gabriel, Tudo bem? Abaixo fiz uns comentários para tentar te ajudar na compreensão desse código.

var loginCadastrado = "alura"; // Registra na variável 'loginCadastrado' o usuário cadastrado
var senhaCadastrada = "alura321"; // Registro na variável 'senhaCadastrada' a senha para acesso

var maximoTentativas = 3; // Registra na variável 'maximoTentativas' a quantidade máxima que o usuário poderá tentar com a senha
var tentativaAtual = 1; // Registra na varável 'tentativaAtual' que será a primeira tentativa de login

while (tentativaAtual <= maximoTentativas) { // Laço de repetição while -> Enquanto a tentativaAtual for menor ou igual ao maximoTentativas o bloco while será executado

    var loginInformado = prompt("Informe seu login"); // Pede o login para o usuário
    var senhaInformada = prompt("Informe sua senha"); // Pede a senha para o usuário

    if (loginCadastrado == loginInformado && senhaCadastrada == senhaInformada) { // Verifica se o usuário e a senha recebidos são iguais ao dados cadastrados no inicio do código. O '&&' torna verdadeira a verificação apenas de TODAS as intruções forem verdadeiras logo, o usuário e a senha precisam estar corretos.

        alert("Bem-vindo ao sistema, " + loginInformado); // Esse bloco de código só será executado se o usuário e senha foram digitados corretamento dentro das 3 tentativas

        tentativaAtual = maximoTentativas; // se acertar o login e a senha é forçado que a variável de controle receba o máximo de tentativas então sairá do bloco while. O break aqui pode ser uma opção interessante.

    } else { // se não acertar o usuario e senha esse bloco será executado

        if (tentativaAtual == 3) { // se errou 3x esse bloco será executado
            alert("Número permitido de tentativas ultrapassado!");
        } else { // se errou a senha/usuário mas ainda não tentou 3x a aplicação dará uma nova chance e esse bloco será executado
            alert("Login inválido. Tente novamente");
        }
    }

    // vai para a próxima tentativa
    tentativaAtual = tentativaAtual + 1  // incrementa 1 unidade à variável de controle de tentativas. está dentro do bloco do while
}
solução!

Muito obrigado! Acho que consegui entender.