Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Exercicio Validação de login - Praticando Laços

Bom dia,
Segue minha resolução do exercicio:

const tentativas = ["1234", "admin", "3256","secreto"];
const senhaCorreta = "secreto";

let t = 0
let acessoPermitido = false

do {
    const senhaDigitada = tentativas[t];
    if (senhaDigitada === senhaCorreta) {
        console.log('Acesso permitido!');
        acessoPermitido = true;
    } else {
       console.log(`Tentativa ${t+1} inválida.`);
    }
    t++;
} while (t<3 && !acessoPermitido){
    if (!acessoPermitido) {
        console.log('Acesso bloqueado. Número máximo de tentativas atingido.');
    }
}
1 resposta

Olá Stephanie.
Tudo bem?
Obrigado por compartilhar sua resolução. Gostei da forma como você utilizou o do...while para controlar as tentativas de login. A lógica de utilizar uma variável para indicar se o acesso foi permitido também demonstra um bom entendimento do fluxo do programa.
Analisando seu código, percebi apenas um detalhe relacionado à sintaxe. Na estrutura do...while, após a condição do while é necessário encerrar o comando com um ponto e vírgula. O bloco que contém a mensagem de acesso bloqueado não pode ficar logo após o while dessa forma, pois isso gerará um erro de sintaxe em JavaScript.
A lógica de limitar as tentativas com a condição t < 3 && !acessoPermitido está correta. Inclusive, o fato de a senha correta estar na quarta posição do array mostra que o sistema irá bloquear o acesso antes de chegar a essa tentativa, respeitando o limite máximo definido por você. Isso não é um erro, mas sim uma consequência da regra que você implementou.
Seu raciocínio está muito bom e demonstra que você está compreendendo bem quando utilizar um do...while, especialmente em situações como validação de login, onde a execução precisa acontecer pelo menos uma vez antes da verificação da condição.
Continue praticando dessa forma e analisando o comportamento do código em diferentes cenários. Esse hábito ajuda bastante no desenvolvimento da lógica de programação e na compreensão das estruturas de repetição.
Avise qualquer dúvida.
Caso eu tenha cometido algum erro na analise comente ai.
Bons estudos.