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

Solução diferente

Eu solucionei de uma forma diferente do professor, mas tive um resultado que não queria. Na última tentativa do usuário, eu queria que aparecesse a mensagem "tente mais tarde". Entretanto primeiro mostra a mensagem "tente novamente" e em seguida a que eu quero. Alguém sabe como resolver isso dentro desse código ou a minha lógica que está falha?

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

    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 = 4;
    } 

    else {

        alert("Login inválido. Tente novamente");
        tentativa = tentativa + 1;
            if (tentativa == 4){
                alert("Tente novamente mais tarde.");
            }
    }

}
</script>
2 respostas
solução!

Eu fiz dessa forma, vê se te ajuda. No seu caso você pode colocar outro if else dentro desse último else que você colocou.

No caso no seu está aparecendo porque o alerto vem depois de informar o login inválido, ou seja, para você acessar o "Tente novamente mais tarde", sempre vai rodar o código do "login inválido. Tente novamente"

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

    var loginCadastrado = "Danilo";
    var senhaCadastrada = "123asd";

    var tentativas = 3;

    while(tentativas > 0){

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

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

            alert("Bem-vindo ao sistema " + loginInformado);
            tentativas = -1;
            break;
        } 

        if (tentativas > 1){
            alert("Login inválido. Tente novamente");
            tentativas = tentativas - 1;
            alert("Você tem mais " + tentativas + " tentativas!!")

        }
        else {

            alert("Sua conta foi bloqueada por motivo de segurança. Entre em contato com o suporte");
            tentativas = tentativas -1;
        }
    }
</script>

Ou você pode fazer com seu código dessa forma alterando a partir da linha 21:

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

    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 = 4;
        break;
    } 


    if (tentativa == 3){
        alert("Tente novamente mais tarde.");
        tentativa = tentativa + 1;
            }
    else {

        alert("Login inválido. Tente novamente");
        tentativa = tentativa + 1;

    }

}
</script>

Fez bastante sentido. Obrigado!