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

[Dúvida] 07 Desafio: Hora da Prática

  • Desafio 1
let contador = 1;
while(contador <10){
    alert(`${contador++}`);
    console.log(`${contador}`);
}
  • Desafio 2
let contador = 10;
while ( contador >= 1 ) {
    alert( `${contador--}` );
    console.log( `${contador}` );
}
  • Desafio 3
let contagemregressiva = prompt ('Insira um valor.')
while( contagemregressiva >= 0 ) {
    alert(`${ contagemregressiva }`);
    console.log(`${ contagemregressiva }`);
    contagemregressiva--;
}
  • Desafio 4
let contagemprogressiva=prompt( "Insira um valor." );
let contador = 0;

while( contador<contagemprogressiva ) {
    alert(`${contador}`);
    console.log(`${contador}`);
    contador++;
}

(Eu realmente espero que esses códigos tenham ficado alinhados no postkk)

2 respostas
solução!

Oii, Gabriel! Tudo bem?

Parabéns pela dedicação em resolver os desafios!

É muito legal ver você explorando diferentes formas de usar o while e interagindo com o usuário.

Dei uma olhada no seu código e tenho algumas observações que vão te ajudar a entender melhor o que está acontecendo "nos bastidores" da execução:

1. O "pulo" do incremento (++ e --)

Nos Desafios 1 e 2, você colocou o incremento/decremento direto dentro do alert, assim: alert(${contador++}).
Embora funcione, isso pode causar uma confusão. O operador ++ altera o valor da variável imediatamente.

  • O que acontece no seu código: O alert mostra o número atual (ex: 1), mas logo em seguida ele soma +1. Quando o código chega na linha de baixo (console.log), a variável já vale 2!
  • Resultado: O alert mostra uma coisa e o console.log mostra outra.
  • Dica: Para deixar o código mais previsível e fácil de ler, prefira fazer a soma/subtração em uma linha separada, no final do bloco while.

2. Atenção aos Limites (< vs <=)

No Desafio 1, você usou while(contador < 10). Isso significa "enquanto for menor que 10".

  • Quando o contador chega em 10, o loop para. Ou seja, o número 10 nunca será exibido no alert. Se a ideia era contar de 1 até 10, o ideal seria usar <= 10 (menor ou igual). O mesmo vale para o Desafio 4.

3. alert vs console.log em loops

Usar alert dentro de um loop pode ser cansativo para testar, pois você precisa clicar em "OK" muitas vezes (se o loop for até 100, serão 100 cliques!). Para testes, o console.log é o nosso melhor amigo, pois mostra tudo de uma vez na tela do desenvolvedor.

Exemplo refatorado (desafio 1)

Aqui vai uma sugestão de como deixar o Desafio 1 mais claro e garantir que ele conte até 10, mostrando os mesmos valores no alerta e no console:

let contador = 1;

while (contador <= 10) { // usando <= para incluir o 10
    console.log(contador); // mostra o valor atual
    // alert(contador); // se quiser usar o alert, ele mostraria o mesmo valor
    contador++; // incrementa no final, preparando para a próxima volta
}

Continue praticando assim!

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Muito obrigado pelas dicas e principalmente pela dica passada.
Eu tentei variar nos códigos justamente com o intuito de saber se teria algum problema.
Ajudou d+++ muito obrigado ^.^