Olá, Raiane. Como vai?
Parabéns por enfrentar os desafios de lógica! Criar laços de repetição com o while é um passo muito importante no aprendizado de programação.
Analisando o seu código, a sua lógica para resolver os problemas está muito boa. Porém, o JavaScript vai apresentar erros de sintaxe no console do navegador e interromper a execução do script por conta de um detalhe importante: a redeclaração de variáveis.
No JavaScript, quando usamos o comando let para criar uma variável (como let contador), nós não podemos usar o let novamente para a mesma variável no mesmo arquivo.
Abaixo, detalho as correções para cada desafio e o código completo corrigido:
O que precisa ser corrigido?
- Redeclaração com
let: Nos Desafios 2 e 4, você usou let contador = ... novamente. Para corrigir, basta mudar o valor da variável sem colocar a palavra let na frente, ou criar variáveis com nomes diferentes (ex: let contadorRegressivo). - Redeclaração da variável
numero: No Desafio 4, você redeclarou a variável numero que já tinha sido criada no Desafio 3. - A ordem do incremento no Desafio 1: Do jeito que está, seu loop começa em 0, mas a primeira linha dentro do
while faz contador++. Isso significa que o primeiro número impresso no console será 1 e o último será 10. A lógica funciona, mas se você quisesse exibir o 0, o console.log deveria vir antes do contador++.
Código Completo Corrigido
Veja como o seu script deve ficar para rodar perfeitamente sem erros no console:
alert ('Desafio 1');
let contador1 = 1; // Iniciando em 1 para contar de 1 até 10
while (contador1 <= 10) {
console.log(contador1);
contador1++;
}
alert ('Desafio 2');
let contador2 = 10; // Iniciando em 10 para contagem regressiva
while (contador2 >= 0) {
console.log(contador2);
contador2--;
}
alert ('Desafio 3: programa de contagem regressiva');
let numeroRegressivo = prompt('Digite um número para a contagem regressiva:');
while (numeroRegressivo >= 0) {
console.log(numeroRegressivo);
numeroRegressivo--;
}
alert ('Desafio 4: programa de contagem progressiva');
let contadorProgressivo = 0;
let numeroProgressivo = prompt('Digite um número para a contagem progressiva:');
while (contadorProgressivo <= numeroProgressivo) {
console.log(contadorProgressivo);
contadorProgressivo++;
}
O que foi mudado para melhorar o funcionamento:
- Diferenciamos os nomes das variáveis (
contador1, contador2, numeroRegressivo, etc.) para que o navegador não se confunda. - Ajustamos a ordem dos comandos dentro dos blocos
while (colocando o console.log antes de somar ou subtrair) e usamos os operadores >= e <= para garantir que as contagens incluam o número digitado pelo usuário e também o número zero.
Você está no caminho certo! Ajustando esses detalhes de sintaxe, sua lógica vai funcionar perfeitamente.
Espero que possa ter lhe ajudado!