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

duvida

Testei uma linha de codigo em uma posição diferente porque parecia fazer sentido, a "primeiraChanse = primeiraChanse + 1;", porém o resultado foi que os popups ficaram repetindo sem parar, nunca fechavam, gostaria de saber o porquê? segue o codigo inteiro:

(olhar na linha 26)

<meta charset="UTF-8">

<script>

    var loginCadastrado = "Izaias";
    var senhaCadastrada = "junior123";

    var primeiraChance = 1
    var ultimaChance = 3

    while(primeiraChance <= ultimaChance){

    var loginInformado = prompt("Login:");
    var senhaInformada = prompt("senha:");

    if(loginCadastrado == loginInformado && senhaCadastrada == senhaInformada) {
        alert("Bem vindo " + loginCadastrado);
        primeiraChance = ultimaChance;

    } else { 
        if(primeiraChance == 3) {
            alert("Numero de tentativas excedido.");
        } else {

        alert("Login ou senha icorreto.");
        primeiraChance = primeiraChance + 1;

        }
    }
        }

</script>
2 respostas
solução!

Fala Izaias, beleza?

Olha só.. entendendo por partes o código.

O laço while vai se repetir enquanto a variavel primeiraChance for menor ou igual a ultimaChance.

Depois você criou duas variáveis para receber os dados do usuário.

Aí vem o primeiro if. Aqui você verifica se os variáveis recebidas estão iguais as variáveis cadastradas e se estiver o usuário recebe um alert com a confirmação e você força a primeira chance ser igual a ultima chance porém, lembra que a condição do seu while é se for menor ou igual?

Como vai ser igual o while nunca vai parar!

Também é preciso criar uma condição que pare o while, dentro do if que verifica as tentativas excedidas. Se não vc também terá um loop infinito de tentativas.

Essa condição pode ser primeiraChance = ultimaChance + 1 ou um simple break. Você testa e adota o que fica melhor pra voce.

var loginCadastrado = 'Izaias'
var senhaCadastrada = 'junior123'

var primeiraChance = 1
var ultimaChance = 3

while (primeiraChance <= ultimaChance) {
  var loginInformado = prompt('Login:')
  var senhaInformada = prompt('senha:')

  if (loginCadastrado == loginInformado && senhaCadastrada == senhaInformada) {
    alert('Bem vindo ' + loginCadastrado)
    primeiraChance = ultimaChance + 1
  } else {
    if (primeiraChance == 3) {
      alert('Numero de tentativas excedido.')
      primeiraChance = ultimaChance + 1
    } else {
      alert('Login ou senha icorreto.')
      primeiraChance = primeiraChance + 1
    }
  }
}

Lembre-se que o while precisa de uma condição para sair. Enquanto essa condição não for atendida o seu loop será infinito.

Espero ter ajudado.

Abs.

Caraca, entendi perfeitamente agora! Muito obrigado Eraldo! Abs.