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

Boa Tarde! O meu problema está no entendimento na estrutura de repetição while. Porque quando eu carrego no google chrome e respondo o chute de forma errada , a repetição neste caso fica apenas em 4 vezes? E não 5? Porque 1*2=2.

4 respostas

Olá, Davyd!

Se sua intenção foi postar seu código aqui, ele não apareceu. Para que ele apareça e seja interpretado como código pelo editor de texto aqui da Alura, você deve apertar a tecla TAB ou digitar 4 espaços em branco no começo de cada linha, e assim, o texto ficará na cor marrom claro.

Mesmo sem o código, vou tentar responder à sua dúvida.

provavelmente, você inicializou seu contador com o valor 1, assim:

var contador = 1;

Para que o laço rode 5 vezes (considerando que você está incrementando o valor do contador de 2 em 2), a condição de parada deve ser

while(contador <= 10)

Ou seja, enquanto o contador tiver valor menor ou igual a 10, devemos repetir o laço.

Provavelmente você se esqueceu do símbolo de igual (=) logo após o símbolo de menor (<).

Se esse não foi o seu equívoco, poste seu código aqui, por favor, para que possamos analisá-lo.

Espero ter ajudado!

<meta charset="utf-8">
                <script>
                function pulaLinha(){
                    document.write("<br><br>");
                }

                function mostra(frase){
                    document.write(frase);
                    pulaLinha();
                }
                function sorteia(n){
                    return Math.round(Math.random()* n);
                }
                var numeroSorteado = sorteia(10);
                var chute = parseInt(prompt("Chute um número de 0 a 10"));

                 var contador = 1;
                if (chute == numeroSorteado) {
                    mostra("Você acertou!!");
                } else {
                    while(contador<=10){

                     mostra("Você errou, tente outra vez.")
                     contador = contador*2;

                    }
                }


                </script>

                Pronto, conseguir mandar os códigos!! Não deveria repetir "Você errou, tente outra vez " 5 vezes não? Se não, porquê?
solução!

Olá, David!

Consegui identificar o erro.

O seu contador deveria ser incrementado somando o próprio valor de 2 em 2, e não multiplicando.

O laço while correto ficaria assim:

while(contador <= 10){
    mostra("Você errou, tente outra vez.")
    contador = contador + 2;
}

Espero ter ajudado!

Boa sorte em seus estudos!

Obrigado!!