Médio JavaScript

Soma dos números pares

Enunciado

Escreva um programa que percorra um array de números usando for...of e some apenas os números pares. Imprima a soma final. Considere o array [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].

Requisitos

  • Use for...of para iterar sobre o array.
  • Use if para verificar se o número é par (resto da divisão por 2 igual a 0).
  • Acumule a soma em uma variável e imprima o resultado.

Código inicial

const numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let soma = 0;
// Use for...of e if para somar os pares

Saída esperada

30
Ver dica

Dentro do laço, use if (numero % 2 === 0) para identificar os pares.

Mostrar solução
// Soma dos números pares
const numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let soma = 0;

for (const numero of numeros) {
  if (numero % 2 === 0) {
    soma += numero;
  }
}

console.log(soma);

Passo a passo

  1. Declaramos o array numeros com os valores de 1 a 10.
  2. Inicializamos let soma = 0; para acumular o resultado.
  3. O laço for...of percorre cada elemento do array, atribuindo-o à variável numero.
  4. Dentro do laço, o if verifica se numero % 2 === 0. O operador % retorna o resto da divisão; se for 0, o número é par.
  5. Se for par, somamos numero à variável soma.
  6. Após o laço, console.log(soma) imprime o total acumulado (30).

Por que funciona

O for...of itera diretamente sobre os valores do array, sem precisar de índices. A condição numero % 2 === 0 filtra apenas os pares, e a variável soma acumula os valores selecionados.

Erros comuns

  • Usar for...in em vez de for...of: for...in itera sobre índices (0, 1, 2...), e numero seria o índice, não o valor. Exemplo errado:
    for (const i in numeros) {
      if (i % 2 === 0) soma += i; // soma índices, não valores
    }
    
  • Esquecer de inicializar soma com 0: let soma; resulta em undefined e a soma vira NaN.
  • Usar = em vez de === na condição: if (numero % 2 = 0) é erro de sintaxe.

Outra forma de resolver

Usar reduce para somar os pares de forma mais funcional:

const soma = numeros.reduce((acc, n) => n % 2 === 0 ? acc + n : acc, 0);
console.log(soma);

Saída esperada

30