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

"Simulando tela de login" - Duvidas

Na minha primeira tentativa eu escrevi o código da seguinte forma :


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

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

    var loginInformado = prompt("Informe seu login");
    var senhaInformada = prompt("Informe sua senha");
    var tentativaAtual = 1
    var maximoTentativas = 3;

    while (tentativaAtual <= maximoTentativas) {

        loginInformado; 
        senhaInformada;

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

            tentativaAtual = maximoTentativas;

        }else {
            if(tentativaAtual == 3) {
                alert("Número permitido de tentativas ultrapassado");
            } else {
                alert("Login inválido. Tente novamente");
            }  
        }

        tentativaAtual = tentativaAtual + 1

}

</script>

Percebi que na resolução do instrutor ele coloca a variável dentro do parâmetro do "while", fiz da forma acima achando que daria o mesmo resultado mas o loop não acontece quando a senha e login não bate, o comando prompt não ativa e a caixa de interação não aparece novamente. Sei o que errei mas não sei o motivo de não funcionar sendo que a variável está designando o comando "prompt"

Se o programa está escrito da forma abaixo funciona como pedido :

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

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


    var tentativaAtual = 1
    var maximoTentativas = 3;

    while (tentativaAtual <= maximoTentativas) {

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

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

            tentativaAtual = maximoTentativas;

        }else {
            if(tentativaAtual == 3) {
                alert("Número permitido de tentativas ultrapassado");
            } else {
                alert("Login inválido. Tente novamente");
            }  
        }

        tentativaAtual = tentativaAtual + 1

}

</script>
1 resposta
solução!

Oiii, Pedro! Tudo bem ? as variáveis var loginInformado = prompt("Informe seu login"); e var senhaInformada = prompt("Informe sua senha"); tem que estar dentro do while porque enquanto a tentativa atual for menor que o máximo de tentativas é para aparecer a opção de digitar o login e a senha novamente ao usuário. Ou seja, na primeira tentativa vai aparecer o prompt de login e o de senha para o usuário digitar. Se errar, o usuário tem uma segunda tentativa. Ser errar novamente tem a terceira tentativa e são nessas tentativas que vai aparecer cada prompt e por isso tem que estar dentro do while.

Em caso de mais dúvidas, me coloco à disposição.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!