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
forcomrange. - 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
- Declaramos o slice
numeroscom cinco inteiros. - Inicializamos
somacom zero. - O
for rangeitera sobre o slice;_descarta o índice enumrecebe cada valor. - A cada iteração,
soma += numacumula o valor. - Após o laço,
fmt.Printlnimprime 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 numerose depois tentar usaricomo valor:soma += isoma os índices, não os valores. - Esquecer de inicializar
somacom zero:var soma inttambém funciona, massoma := 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