Oii, Felipe! Tudo bem?
Parabéns pela dedicação em resolver os desafios! É muito legal ver você testando diferentes formas de exibir os resultados (usando tanto alert quanto console.log).
Analisei seu código e tenho algumas dicas bacanas para te ajudar a ajustar a lógica e chegar exatamente no resultado esperado:
1. A condição de parada do Loop (While)
Nos desafios, o objetivo geralmente é incluir o número final na contagem.
- Quando usamos apenas
< (menor que) ou > (maior que), o loop para antes de chegar no número limite. - Dica: Para incluir o número final (como o 10 ou o 0), precisamos usar o igual junto:
<= (menor ou igual) ou >= (maior ou igual).
2. O incremento dentro do alert
Vi que você colocou contador++ direto dentro do alert. Isso funciona, mas pode causar uma pequena confusão: o valor é exibido no alert e imediatamente aumentado. Quando o código chega na linha de baixo (console.log), o número já mudou!
- Sugestão: Para facilitar a leitura e garantir que o
alert e o console mostrem o mesmo número, tente fazer o incremento (contador++) em uma linha separada, no final do bloco.
Como ficaria o código com esses ajustes:
Exemplo para o Desafio 1 (1 até 10):
let contador = 1;
// Usamos <= para incluir o 10
while (contador <= 10) {
alert(contador);
console.log(contador); // Agora o console mostra o mesmo valor do alert
contador++; // Incrementamos depois de mostrar
}
Exemplo para o Desafio 3 (Contagem Regressiva até 0):
let contagemRegressiva = prompt("Insira um número:");
// Usamos >= para incluir o 0
while (contagemRegressiva >= 0) {
console.log(contagemRegressiva);
contagemRegressiva--;
}
Esses detalhes de lógica ("é maior que" vs "é maior ou igual a") são super comuns de confundir no começo, chamamos isso de erro de contagem por um (off-by-one error). Com a prática você tira isso de letra!
Continue praticando.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!