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

Tela de login - Super Dúvida

Não consegui fazer nada melhor que isso Até funciona mas deixa a desejar [Dúvida Mais Abaixo]

<meta charset="UTF-8">
<script>
  var loginCadastrado="alura";
  var senhaCadastrada="alura321";
  var loginInformado = prompt("Informe seu login");
  var senhaInformada = prompt("Informe sua senha");

  if(loginCadastrado==loginInformado&&senhaCadastrada==senhaInformada){
    alert("Bem-vindo ao sistema "+loginInformado);
  }else{
    alert("Login inválido. Tente novamente");
    var loginInformado=prompt("Informe seu login");
    var senhaInformada=prompt("Informe sua senha");
    if(loginCadastrado==loginInformado&&senhaCadastrada==senhaInformada){
      alert("Bem-vindo ao sistema " + loginInformado);
    }else{
      alert("Login inválido. Tente novamente");
      var loginInformado=prompt("Informe seu login");
      var senhaInformada=prompt("Informe sua senha");
      if(loginCadastrado==loginInformado&&senhaCadastrada==senhaInformada){
        alert("Bem-vindo ao sistema " + loginInformado);
      }else{
        alert("ACESSO NEGADO!")
        }}}
</script>

Não estou conseguindo entender esse pedaço de código do professor

<meta charset="UTF-8">
<script>
  var loginCadastrado="alura";
  var senhaCadastrada="alura321";

  var maximoTentativas=3;
  var tentativaAtual=1;

  while(tentativaAtual<=maximoTentativas){ //aqui diz que enquanto 1 for menor ou igual a 3, a condição vai ser true certo?
    var loginInformado=prompt("Informe seu login");
    var senhaInformada=prompt("Informe sua senha");
    if(loginCadastrado==loginInformado&&senhaCadastrada==senhaInformada){
      alert("Bem-vindo ao sistema, "+loginInformado); //ok o cara acertou!
      tentativaAtual=maximoTentativas; //então aqui tentativaAtual recebe maximoTentativas correto? Quando while for passar de novo, (3<=3) que é true certo? Aqui não teríamos um loop infinito??
    }else{
    if(tentativaAtual==3){
      alert("Número permitido de tentativas ultrapassado!");
    }else{
      alert("Login inválido. Tente novamente");
    }
    }
    tentativaAtual = tentativaAtual +1  
  }
</script>
5 respostas
solução!

Olá Jorge, tudo bem? Você está correto no seu comentário:

 tentativaAtual=maximoTentativas; //então aqui tentativaAtual recebe maximoTentativas correto? Quando while for passar de novo, (3<=3) que é true certo? Aqui não teríamos um loop infinito??

Entretanto a execução do código ainda não acabou, veja que mais abaixo é incrementado mais uma vez a variável tentativaAtual: tentativaAtual = tentativaAtual +1

Dessa maneira tentativaAtual valerá 4, e não entrará mais no while.

Até mais!!

Oi Marcus Cesar, muito obrigado por me responder. Eu pensava que tudo que estava abaixo do if(true) fazia parte do else mas só agora me atentei ao fato que tentativaAtual=tentativaAtual+1 está fora do else mais ainda dentro do while, logo essa reatribuição de variável será executada tanto no if(true) quanto no if(false). Valeu mesmo, cara fui dormir 8h indignado que não estava conseguindo entender rs. Obrigado mais uma vez pelo seu comentário. Me ajudou bastante. Abraço!

Essa também foi uma dúvida que fiquei quando estava resolvendo o exercício. Obrigado pela pergunta Jorge, e também pela explicação Marcus.

Oi Hellan, é legal quando a gente vê outras pessoas tendo a mesma dificuldade de compreensão que a gente teve né! Gosto muito de poder interagir com vocês. Abraço!

Fico feliz em ter ajudado!! Abraços!!