1
resposta

No exercício de tela de login, editei o código, mas não está executando. Onde eu errei?

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

    function mostra() {
        document.write();
    }
    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";

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

    while (chances >= maximoChances) {

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

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

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

        } else {

        if( chances == maximoChances ) {
        alert("Login inválido. Sem tentativas");

        } else {

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

</script>
1 resposta

Olá Antônio, tudo bem com você?

Peço desculpas pela demora em lhe responder.

No código apresentado, está sendo levado erro no momento da execução devido à falta de uma chave (}) para realizar o fechamento do laço de repetição while. Peço que acima da tag </script> adicione a seguinte chave: }.

Após essa correção, será necessário realizar outras modificações no código, para que a lógica de funcionamento dele trabalhe como esperado. Deixo abaixo os pontos que devem ser modificados.

  • Será necessário remover a declaração e a atribuição das variáveis loginInformado e senhaInformada que estão fora do laço while. A entrada do usuário deve ser coletada apenas dentro do laço de repetição while.
  • Atribua o valor 4 para a variável maximoChances. O laço de repetição será encerrado um valor antes do valor definido na variável maximoChances.
  • No laço de repetição while, devemos trocar a lógica utilizada, atualmente o laço será executado apenas quando o valor presente na variável chances for maior ou igual ao valor presente na variável maximoChances, dessa forma o laço não será executado. Peço que mude, para que o laço execute enquanto o valor da chances for menor que o maximoChances. Como apresentado a baixo.
    while (chances < maximoChances)
  • Feito essas mudanças, salve o arquivo e execute-o novamente.

Código completo com as mudanças aplicadas

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

    function mostra() {
        document.write();
    }
    var loginCadastrado = "alura";
    var senhaCadastrada = "alura321";
    var chances = 1
    var maximoChances = 4

    while (chances < maximoChances) {

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

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

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

        } else {

        if( chances == maximoChances ) {
        alert("Login inválido. Sem tentativas");

        } else {

        alert("Login inválido. Tente novamente.");
        chances = chances + 1;
        }
    }
    }
</script>

Espero ter ajudado. Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

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