1
resposta

Codigo dá 4 chances e só acata login correto na primeira tentativa

Olá, eu encontrei em outros tópicos a informação que o JavaScript contaria desde o zero, por isso dá 4 chances mas... por que ele faz isso, sendo que eu declarei o valor da variável tentativa como sendo 1? Não deveria começar do 1, devido a essa declaração?

No mais, o programa só está retornando mensagem "Bem vindo ao sistema" se acerto na primeira tentativa.

E o não funciona no comando prompt?

Segue o código, obrigado

<meta charset="UTF-8">

<script>

function pulaLinha() {

    document.write("<br>")
}


function mostra(texto) {

    document.write(texto)
    pulaLinha()
}


    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";

    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha. <br> Atenção: você tem apenas 3 tentativas");

    var tentativa = 1

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

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

    else {while(tentativa <= 3) {

        alert("Login inválido. Tente novamente");


    tentativa = tentativa + 1

    prompt("Informe seu login");
    prompt("Informe sua senha");
}
}

</script>
1 resposta

Olá, Daniel!!! Como vai?

Quanto a contagem você está correto. Se declararmos na variável o valor 0 e o número de tentativas <=3, com certeza ele contará quatro. A não ser que você estipule <3. Assim ele contará 0,1,2 tentativas.

Quanto aos erros, fiz algumas alterações, inclusive colocando if e else dentro do while. Dê uma olhada, Daniel! ;-)

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>")
    }

    function mostra(texto) {

        document.write(texto)
        pulaLinha()
    }

    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";

    var tentativa = 1

    while (tentativa <= 3){

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

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

            alert("Bem-vindo ao sistema, " + loginInformado);

            tentativa = 3
        } else {
            if (tentativa == 3) {
                alert("Excedeu o número de tentativas");
            } else {
                alert("Login inválido. Atenção: você fez " + tentativa + " tentativa de 3");
            }
        }
            tentativa = tentativa + 1
        }   

</script>

Espero ter ajudado e bons estudos!!!