Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Exercício: Validação de login

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

let numTentativa = 0;

for (let tentativa of tentativas) {
  numTentativa++;

  if (tentativa === senhaCorreta) {
    console.log("Acesso permitido!");
    break;
  }

  console.log(`Tentativa ${numTentativa} inválida.`);

  if (numTentativa === 3) {
    console.log("Acesso bloqueado. Número máximo de tentativas atingido.");
    break;
  }
}
1 resposta
solução!

Olá, Vitor. Como vai?

Parabéns pela resolução do exercício! O seu código é um ótimo exemplo de como controlar o fluxo de acesso em um sistema utilizando laços de repetição e condicionais.

Você utilizou muito bem o laço for...of, que torna a leitura do código mais limpa ao percorrer o array de tentativas. O uso do break também foi aplicado corretamente em dois momentos estratégicos: para encerrar o loop ao encontrar a senha correta e para interromper o processo após atingir o limite de segurança.

Gostaria de destacar alguns pontos interessantes na sua implementação:

  • Controle de Tentativas: A variável numTentativa incrementando a cada iteração permite um acompanhamento preciso do status do usuário, o que é fundamental para a experiência de uso (UX).
  • Segurança Lógica: Ao verificar tanto a correção da senha quanto o limite de erros, você criou uma camada dupla de controle que é muito comum em sistemas reais de autenticação.
  • Ordem de Execução: Note que você colocou a verificação da senha correta antes da mensagem de "tentativa inválida". Isso é perfeito, pois evita que o sistema diga que a tentativa foi inválida quando o usuário, na verdade, acertou na última chance.

Para levar esse código a um próximo nível, você poderia considerar o uso de um laço while caso o número de tentativas fosse indefinido até o acerto ou bloqueio, mas para um array fixo de entradas, o seu uso do for...of foi a escolha mais elegante.

Continue praticando, pois o domínio desses controles de fluxo é o que separa scripts simples de aplicações robustas!

Espero que possa ter lhe ajudado!