Médio Go

Soma com range

Enunciado

Dado um slice de inteiros, use for com range para calcular e imprimir a soma de todos os elementos.

Requisitos

  • Usar for com range.
  • Calcular a soma corretamente.
  • Imprimir o resultado.

Código inicial

package main

import "fmt"

func main() {
	numeros := []int{1, 2, 3, 4, 5}
	// use range para somar
}

Saída esperada

Soma: 15
Ver dica

Você pode ignorar o índice com _ se não precisar dele.

Mostrar solução
package main

import "fmt"

func main() {
	numeros := []int{1, 2, 3, 4, 5}
	soma := 0
	// range retorna índice e valor; usamos _ para ignorar o índice
	for _, num := range numeros {
		soma += num
	}
	fmt.Println("Soma:", soma)
}

Passo a passo

  1. Declaramos o slice numeros com cinco inteiros.
  2. Inicializamos soma com zero.
  3. O for range itera sobre o slice; _ descarta o índice e num recebe cada valor.
  4. A cada iteração, soma += num acumula o valor.
  5. Após o laço, fmt.Println imprime a soma.

Por que funciona

O range percorre todos os elementos do slice, atribuindo o índice e o valor às variáveis. Ignorar o índice com _ é uma prática comum quando ele não é necessário.

Erros comuns

  • Usar for i, num := range numeros e depois tentar usar i como valor: soma += i soma os índices, não os valores.
  • Esquecer de inicializar soma com zero: var soma int também funciona, mas soma := 0 é mais explícito.

Outra forma de resolver

Usar for clássico:

for i := 0; i < len(numeros); i++ {
    soma += numeros[i]
}

Menos idiomático em Go; range é preferível.

Saída esperada

Soma: 15