4
respostas

Por que ele fica repetindo o alert e não muda o valor da variável

<meta charset="UTF-8">
<script>

    var loginCadastrado = "victor";
    var senhaCadastrada = "1337";

    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");
    var tentativas = 3


    if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {

        alert("Bem-vindo ao sistema " + loginInformado);
    } else {

        while(tentativas <= 3 && tentativas >= 0){

            var tentativas = 3
            tentativas = tentativas - 1
        alert("Login inválido. Tente novamente");
        alert(" Você possuí " + tentativas + " tentativas, cuidado!")
         }
    }
</script>
4 respostas

Bom dia, verifica a situação do ponto e vírgula, estão faltando alguns, tem duas variáveis e um alert faltando:

Trabalhe com o Break; no fim do While para que ele não fique sempre no loop infinito!!!

Bons estudos!!!

Tente fazer dessa forma que vai funcionar.

  var loginCadastrado = "victor";
    var senhaCadastrada = "1337";
    var tentativas = 3

    while(tentativas <= 3 && tentativas > 0){
        <!-- var tentativas = 3 -->    
        tentativas--;
    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");
    if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
        alert("Bem-vindo ao sistema " + loginInformado);
        break;        
    } else {
        alert("Login inválido. Tente novamente");
        if(tentativas >0)
            alert(" Você possuí " + tentativas + " tentativas, cuidado!");
        else 
            alert(" Você não possuí mais tentativas!");
        }
    }

Perfeito!!

Oi Victor Silveira Feques seu código que pede o login e a senha deve vir dentro da estrutura de repetição while senão você nunca vai dar outra chance ao usuário, existe um erro de lógica aí, sugiro você fazer um while e colocar as condições if de acerto e erro dentro dele.

A condição de parada do while é quando o número de tentativas for <=0 por exemplo. E a cada erro você vai decrementando essas tentativas.

Espero ter ajudado e bons estudos.