3
respostas

Simulando tela de Login

Fiz o exercicio porém utilizei de outra forma cheguei no resultado, mas gostaria de saber se meu exercicio está errado.

<meta charset="utf-8">
<script>
    //FUNÇÃO PARA PULAR LINHA
    function pulaLinha() 
    {
        document.write("<br>");
    }

    //FUNÇÂO PARA ESCREVER NA TELA COM ARGUMENTO
    function mostra(frase)
    {
        document.write(frase);
        //MESCLANDO FUNÇOES 
        pulaLinha();
    }

    //FUNÇÃO PARA TESTAR A SENHA        
    function testaSenha() {
        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 usuario: " + loginInformado);

               } else {
                   contador = contador + 1;
                while(contador <= 3){
                    alert("Login inválido. Tente novamente. TENTATIVA: " + contador);
                    testaSenha();
                }
            }
     }

    var contador = 0;


       testaSenha();



</script>
3 respostas

No mundo da programação, não existe apenas uma maneira de se resolver os problemas, então você conseguiu chegar ao resultado à sua própria maneira. Então, está certo a sua resolução. Parabéns!

Olá Marlony, tudo bom?

Então, na verdade, conseguir atingir o objetivo, é o objetivo... hehehe

Isso significa que o principal passo é: Funcionar. Porém, existem algumas metodologias que a gente costumeiramente adota para a escrita de códigos, porque quase sempre existem maneiras melhores para que a gente os escreva. Popularmente chamadas de : Boas Práticas de Programação.

Como você está começando, seria interessante dar uma olhadinha em o que são essas boas práticas, só pra ficar por dentro. Entendendo elas, você mesmo vai poder dizer se o seu código está bom ou não.

Resolvi reescrever teu código com base em algumas delas. Não se preocupe muito em entender este código, porém, guarde ele para utilizar como ferramenta de estudo.

<meta charset="utf-8">

<script>

    let tentativas = 3;
    TestarSenha();


    function TestarSenha(){
        tentativas == 0 ? false : Validacoes();
    }

    function Validacoes(){
        IsLoginCorreto(ObterLogin()) && IsSenhaCorreta(ObterSenha()) ? BoasVindas() : ErroLogin();
    }

    function BoasVindas(){
        alert("Bem vindo ao Sistema usuario: " + LoginCadastrado());        
    }

    function ErroLogin(){
        tentativas--;
        alert("Login Inválido! Tente novamente");
        TestarSenha();
    }

    function ObterLogin(){
        return prompt("Informe seu login");
    }

    function ObterSenha(){
        return prompt("Informe sua senha");
    }

    function LoginCadastrado(){
        return "alura";
    }

    function SenhaCadastrada(){
        return "alura321";
    }

    function IsLoginCorreto(login){
        return LoginCadastrado() == login ? true : false;
    }

    function IsSenhaCorreta(senha){
        return SenhaCadastrada() == senha ? true : false;
    }

</script>

Ademais,

Se a resposta lhe ajudou ou resolveu sua dúvida, assinalar como Solucionada, afinal, outras pessoas podem estar com a mesma duvida.

Atenciosamente,

Mateus Roman

Oi Marlony Teles Esterquim mesmo acertando o login na primeira tentativa seu programa continua perguntando o usuário e a senha, esse não é o comportamento desejado, portanto você deve usar uma lógica que faça com que o programa quebre o loop em que está inserido caso o login seja feito.

Uma implementação seria:



<meta charset="UTF-8">

<script>

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

    var maximoTentativas = 3;
    var tentativaAtual = 1;

    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);

            break; // acertou, então eu quebro o laço de repetição! 

        } else {

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

       // vai para a próxima tentativa
        tentativaAtual = tentativaAtual +1  
    }

</script>

Espero ter ajudado e bons estudos.