Médio C#

Somando números pares com for e foreach

Enunciado

Dado um array de inteiros, use um laço for para calcular a soma de todos os números pares e um foreach para imprimir cada número par encontrado. Ao final, mostre a soma.

Requisitos

  • Usar for para percorrer o array e somar os pares
  • Usar foreach para imprimir os números pares
  • Imprimir a soma final

Código inicial

using System;

class Program
{
    static void Main()
    {
        int[] numeros = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        int soma = 0;
        // Use for para somar os pares
        // Use foreach para imprimir os pares
        // Imprima a soma
    }
}

Saída esperada

2
4
6
8
10
Soma: 30
Ver dica

Um número é par quando numero % 2 == 0. No for, use o índice para acessar numeros[i]. No foreach, percorra o array novamente e imprima apenas os pares.

Mostrar solução
using System;

class Program
{
    static void Main()
    {
        int[] numeros = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        int soma = 0;

        // for: percorre por índice e soma os pares
        for (int i = 0; i < numeros.Length; i++)
        {
            if (numeros[i] % 2 == 0)
                soma += numeros[i];
        }

        // foreach: percorre os valores e imprime os pares
        foreach (int n in numeros)
        {
            if (n % 2 == 0)
                Console.WriteLine(n);
        }

        Console.WriteLine($"Soma: {soma}");
    }
}

Passo a passo

  1. Declaramos o array numeros com valores de 1 a 10.
  2. Inicializamos soma com 0.
  3. O laço for percorre de i = 0 até i < numeros.Length, acessando cada elemento por numeros[i].
  4. Dentro do for, verificamos se o número é par com numeros[i] % 2 == 0; se for, somamos em soma.
  5. O laço foreach percorre cada valor n do array.
  6. Dentro do foreach, se n for par, imprimimos n.
  7. Após os laços, imprimimos o valor final de soma com interpolação de strings.

Por que funciona

O for é ideal para percorrer arrays com controle de índice, e o foreach simplifica a iteração sobre todos os elementos. Ambos acessam os mesmos dados, mas com propósitos diferentes: um para acumular, outro para exibir. A condição % 2 == 0 identifica números pares corretamente.

Erros comuns

  • Usar i <= numeros.Length no for: isso causa IndexOutOfRangeException porque o último índice válido é Length - 1.
  • Esquecer de incrementar soma dentro do if: a soma ficaria 0.
  • No foreach, tentar modificar n (ex.: n++): isso não compila, pois a variável de iteração é somente leitura.

Outra forma de resolver

Usar LINQ para somar e filtrar:

using System.Linq;
int soma = numeros.Where(n => n % 2 == 0).Sum();
foreach (var n in numeros.Where(n => n % 2 == 0))
    Console.WriteLine(n);

LINQ é preferível para código mais declarativo, mas laços explícitos são melhores para aprender controle de fluxo.

Saída esperada

2
4
6
8
10
Soma: 30