1
resposta

Lista de exercícios JavaScript 4 - laços de repetição

Ola, boa tarde
Segue minha lista de exercicios sobre laços de repetição.
Eu vi na resolução que tem umas respostas diferentes da minha inclusive uma com array porem ainda não cheguei na aula de array entçao fiz do jeito que consegui.

//Lista de exercicios 4

// 1. Contador de 1 a 10
for (let contador1 = 1; contador1 <= 10 ; contador1++) {
   console.log(contador1);
}

// // 2. Soma de 1 a 100
let somaNumeros = 0 
for (let contador = 1; contador <= 100 ; contador++) {
    somaNumeros += contador;
}
console.log('A soma dos numeros de 1 a 100 é: ', somaNumeros);

// 3. Tabuada personalizada
let numero3 = 5
//Somente o valor final | Resultado
// for (let contador3 = 1; contador3 <=10; contador3++) {
//     let tabuada = numero3 * contador3;
//     console.log(tabuada);
// }
//Conta completa (5x1=5)
for (let contador3 = 1; contador3 <=10; contador3++) {
    let tabuada = numero3 * contador3;
    console.log(numero3,'x',contador3,'=',tabuada);
}

// 4. Contagem regressiva
let contador4 = 10
while (contador4 >= 0) {
    console.log(contador4);
    contador4--
}
console.log('Contagem finalizada!')

//5. Receber números até digitar 0
let numeroDigitado = 8
let totalNumeros = 0
do {
    totalNumeros++
    numeroDigitado--
} while (numeroDigitado > 0);
 console.log('Foram digitados:',totalNumeros);

// 6. Jogo do número secreto
const numeroSecreto = 5
for (let contador6 = 1; contador6 <= 3; contador6++) {
    //let tentativa = contador6 + 1
    let tentativa = 5;
    if(tentativa === numeroSecreto){
        console.log('Acertou!');
    } else {
        console.log('Tente novamente!');
    }
    
}

//7. Idade ao longo dos anos
const anoNascimento = 2001
const anoAtual = 2026
for (let contador7 = anoNascimento; contador7 <=anoAtual ; contador7++) {
   let idade = contador7-anoNascimento;
   console.log("Ano:",contador7,'| Idade:',idade);
}

// 8. Listando números pares
let totalNumerosPares = 0
for (let contador8 = 1; contador8 <= 50; contador8++) {
    if (contador8 % 2 === 0) {
        console.log('Numero par:',contador8);
        totalNumerosPares++; //Total de numeros pares
    }
}
console.log('Total de numeros pares:', totalNumerosPares);

//9. Contar múltiplos de 3 entre 1 e 100
let multiplus3 = 0
for (let contador9 = 1; contador9 <= 100; contador9++) {
    if (contador9 % 3 === 0) {
        multiplus3++
        console.log(contador9) //numeros multiplus de 3
    }
}
console.log(multiplus3,'numeros são divisiveis por 3.');

//10. Menu com repetição
let opcao = 1
do {
    console.log('1 - Ver saldo');
    console.log('2 - Fazer depósito');
    console.log('3 - Sair');
    if(opcao == 1){
        console.log('Mostrando saldo...');
    } else if (opcao == 2){
        console.log('Fazendo deposito...');
    } else {
        console.log('Saindo...');
    }
    opcao++
} while (opcao<=3);
1 resposta

Olá, Stephanie! Tudo bem?

Parabéns pela dedicação! É perfeitamente normal (e até recomendável) que você resolva os problemas com as ferramentas que já conhece. Programação é sobre resolver problemas, e você conseguiu aplicar os laços for, while e do while de forma muito lógica e funcional.

Não se preocupe por não ter usado arrays ainda. Logo você verá que os arrays e os laços de repetição nasceram um para o outro, mas entender a lógica do contador e da condição antes disso é o que constrói uma base sólida.

Analisei seu código e tenho alguns destaques técnicos e dicas para te ajudar a brilhar ainda mais no JavaScript:

Destaques Positivos

  • Diferenciação no Exercício 3: Achei excelente você ter feito as duas versões da tabuada. No dia a dia, a "conta completa" (5 x 1 = 5) oferece uma experiência muito melhor para o usuário final.
  • Uso do Operador de Resto (%): Você mandou muito bem nos exercícios 8 e 9! O operador % é a forma padrão e mais performática de encontrar pares, ímpares e múltiplos em qualquer linguagem de programação.
  • Lógica do do while: No exercício 10, você aplicou corretamente a estrutura que garante que o menu seja exibido pelo menos uma vez antes de verificar a condição de saída.

Dicas de Evolução (Refatoração)

1. Template Strings:
No JavaScript moderno, em vez de usar vírgulas ou o sinal de + para juntar textos e variáveis, usamos a crase ( ) e o${}`. Isso deixa o código mais limpo.

  • Como está: console.log(numero3,'x',contador3,'=',tabuada);
  • Como pode ser: console.log(${numero3} x ${contador3} = ${tabuada});

2. Atribuição Abreviada:
No exercício 4, você usou contador4--, o que é ótimo! Nos outros, você pode fazer o mesmo para somar:

  • somaNumeros += contador; (Você já usou este no exercício 2, parabéns! Pode aplicar o mesmo padrão no exercício 5, 8 e 9).

3. O "Pulo do Gato" nos Números Pares:
No exercício 8, você percorreu todos os 50 números e testou se eram pares. Existe uma forma mais "preguiçosa" (e eficiente) para o computador:

for (let i = 2; i <= 50; i += 2) {
    console.log('Numero par:', i);
}

Aqui, o contador já pula de 2 em 2, economizando metade dos testes!

Um pequeno ponto de atenção

No Exercício 5, notei que você está simulando a entrada de dados diminuindo o numeroDigitado manualmente. Quando você aprender a usar o prompt() ou interagir com o HTML, esse laço ficará ainda mais dinâmico, pois a condição de parada será realmente o que o usuário digitar.

Você está no caminho certo, Stephanie! A lógica de programação é como um músculo: quanto mais você pratica esses exercícios, mais forte ela fica.

Dos três tipos de laços que você usou (for, while, do while), qual você achou mais intuitivo de escrever?