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

jeito diferente esta certo ?

depois de ficar fritando a cabeça de fazer utilizando o !=, eu resolvi ver resoluçao eh entedi que tinha esquecido do pedaço das variaveis das tentativas. ai eu encaixe a logica que estava querendo colocar eh queria saber ela estar certo ou faz sentido ?

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

            tentativaAtual = maximoTentativas; 

        }

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

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

        tentativaAtual = tentativaAtual +1  
    }

</script>
6 respostas
solução!

Oi, Raí, como vai?

Sim, está certo! Parabéns pelo empenho nos estudos!

Para simplificar ainda mais seu código você poderia utilizar um else no lugar do else if, já que não teremos outras condições de login para verificar, pois se o login e a senha não batem o usuário não pode logar no sistema.

Espero ter ajudado.

Abraços e bons estudos!

ah muito obrigado pode deixar que vou fazer alteraçao.

oh voltando aqui eu fiz alteraçao do else if para else eo codigo nao funcionou poderia me explicar, ja que nao entendi.

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

            tentativaAtual = maximoTentativas; 

        }

        else ( loginInformado != loginCadastrado && senhaInformada != senhaCadastrada) {

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

        tentativaAtual = tentativaAtual++  
    }

</script>

Oi, Raí, tudo beleza?

O else não aceita condições dentro dos parênteses e nem possui os parênteses, ele funciona assim:

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

O else é uma opção oposta ao if, ou seja, se as condições do if não bater, neste caso, o login e a senha, o else é executado. Então, não precisamos colocar condições no else, pois a condição dele para ser executado é o if que vem antes dele não ser executado. Neste exercício, então, o else sempre será executado quando o login e a senha não forem iguais ao definido no código.

Espero ter ajudado.

Abraços e bons estudos!

ah entao nao tem necessidade de ter um else if assim

else if ( loginInformado != loginCadastrado && senhaInformada != senhaCadastrada)

pq igual se falou na primeira mensagem, oh exercicio nao tem mais condiçoes de ser o login nao foi sucedido ele nao entra no sistema, entao o else if para um caso de mais condiçoes por isso ele tem um paranteses para especificar que se acontece aquele parametro igual o if, ja que o else nao ja um oposto do if. entao para esse exercicio o meu jeito esta errado mais funciona mesmo assim ?

Oi, Raí,

Isso mesmo! Não teria necessidade de um else if com condições, apenas o else já bastaria mesmo. Mas do seu primeiro jeito não estava errado não, a utilização do else seria mais para simplificar o código mesmo.

Abraços e bons estudos!