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

Algumas aulas estão adiantando conceitos na resolução.

Eu percebi que algumas aulas estão apresentando na resolução de uma atividade conceitos ensinado na atividade posterior. Por exemplo: Na aula 7 atividade 14 apresenta esta solução:

<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, sai do loop while porque não faz sentido continuar perguntando

        } else {

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

        tentativaAtual++; // vai para a próxima tentativa

    }

</script>

O conceito da função "break" só é apresentando na atividade 15. Eis que encontrei esta solução, sem utilizar esta função:

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

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

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

    if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
        alert("Bem-vindo ao sistema " + loginInformado);
        } else {
            while(contador < 3){
            alert("Login inválido. Tente novamente");
            contador++;
            var loginInformado = prompt("Informe seu login");
            var senhaInformada = prompt("Informe sua senha");
            }
            alert("Acesso negado!")
        }      

</script>

Espero que ajude!

11 respostas

Olá.

É, se está assim, realmente, pode confundir um pouco o aluno. A sua solução contorna o problema, muito bem! Isso que é ser analista, tá vendo? Analisar alternativas, questionar a solução proposta...

Obrigado Bruno! Isso me anima muito, já que estou iniciando agora no mundo da programação. Um abraço!

Que bom, Mateus! Conte com a gente :)

Boa, reparei o mesmo problema, ao vir o Fórum vi que já haviam identificado. Boa Mateus!

Oi Matheus ! Obrigado pelo retorno. Moverei o exercício para seu devido lugar.

Desculpe, de coração qualquer transtorno que isso possa ter causado.

No mais, fico contente de você ter encontrado sua própria solução.

Eu é que agradeço Flávio! Seu curso está me motivando muito! E não se preocupe, não me causou transtorno nenhum.

solução!

Oi Mateus! Obrigado.

Eu mantive o exercício no mesmo lugar, mas usei uma estratégia que é bem utilizada, aliás, eu até prefiro no lugar do break que é a seguinte.

Se você quer sair do loop por algum motivo, nós jogamos um valor para a condição do loop que faça faça dar falso lá na condição. No caso, temos 3 tentativas, certo? Se eu acerto na primeira, simplesmente digo que o número de tentativas é 3. Isso é suficiente para que o programa não fique preso dentro do loop, porque logo em seguida ele vai incrementar o contador de 3 para 4.

O que achou? Posso manter?

https://cursos.alura.com.br/course/logica-programacao-javascript-html/task/23366

Deixei o código mais bonito lá.

Ficou legal, Flavio. Uma forma também seria criar um bool e, enquanto ele fosse false, ficasse executando o código dentro do while. Aí teria que mudar ele para true caso o usuário acertasse o login ou atingisse 3 tentativas. Entretanto, necessitaria de mais uma variável para isso, logo a sua solução acabou simplificando.

Mateus, note que fiz o comentário acima para te apresentar ainda mais opções e tentar ajudar a abrir mais a sua cabeça para a questão de que "sempre há outra forma de fazer o que você está fazendo". Só resta saber se a(s) outra(s) forma(s) é(são) melhor(es) :)

Achei muito interessante Flavio, eu ja até usei essa resolução em um exercício mais à frente antes de você comentá-la hahahaha.

Muito legal Bruno, agradeço pela sugestão, vou tentar aplicar em algum dos programas que criei depois pra ver qual se encaixa melhor em cada situação.

Gente, vocês estão de parabéns. O mais legal aqui é aquela máxima que existem diversas formas de se resolver um problema.

Sucesso e bom estudo para todos!