1
resposta

Duvida quanto a funcionalidade do codigo

A unica solucao que eu achei para sair do loop, foi a mesma que a solucao do professor, porem tenho duvida quanto a funcionalidade deste codigo visto que, normalmente quando atingimos o numero maximo de tentativas, nosso "login" e bloqueado por alguns minutos, horas etc.. Neste caso, ao realizar o login com sucesso, nos setamos o tentativa para o numero maximo tentativa = 3 porem mesmo logando com sucesso, num programa funcional, nao acarretaria no login com sucesso porem acabaria "bloqueando" o login conforme o codigo de bloqueio? Qual seria a solucao alternativa para fugir deste loop sem precisar setar a variavel tentativa no maximo?

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

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

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

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

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

    } else {

        var tentativa = 1

        while(tentativa < 3) {

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

            if(senhaInformada != senhaCadastrada) {
                tentativa = tentativa + 1;
                senhaInformada = prompt("Informe sua senha");
            } 

            if (senhaInformada == senhaCadastrada) {
                alert("Bem-vindo ao sistema " + loginInformado);
                tentativa = 3;

            } 

            if (tentativa == 3 && senhaInformada != senhaCadastrada) {

                alert("Voce atingiu o limite de tentativas e foi bloqueado.");

            }

        }
    }
</script>
1 resposta

O instrutor vai explicar com mais detalhes mais para frente no curso, é possível usar a palavra reservada break que serve para sair do loop. Caso esteja usando um loop dentro de um loop o break sai apenas do loop mais interno.