Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

[Dúvida] corrigir código e sintaxe

alert ('Desafio 1');
let contador = 0;

while (contador < 10) {
    contador++;
    console.log (contador);
}



alert ('Desafio 2');
let contador = 11;

while (contador > 0) {
    contador--;
    console.log(contador);
}


alert ('Desafio 3: programa de contagem regressiva');
let numero = prompt ('Digite um número:');
console.log (numero);

while (numero > 0) {
    numero--;
    console.log (numero);
}


alert ('Desafio 4: programa de contagem progressiva');
let contador = 0;
let numero = prompt ('Digite um número:');
console.log (contador);

while (numero != contador) {
    contador++;
    console.log (contador);
}
2 respostas

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!

Boa noite, Evandro!

eu fiz cada desafio em um arquivo diferente, por isso não declarei diferente as variáveis. E não tenho salvado os exercícios no Visual (salvo num caderno digital), deixei apenas salvo no VSC o do número secreto, porque é o exercício base das aulas. Fiz as outras alterações. Obrigada pelas correções!