Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Resposta - Somando os valores do array

double[] doacoes = {103.54, 259.72, 82.16, 154.87, 364.45, 14.49 };

int i = 0;
int w = doacoes.Count();
double total = 0;
while(i <= w)
{
    total += doacoes[i];
    i++;

    Console.WriteLine(total);
}
1 resposta
solução!

Oii, Philip! Tudo bem?

É muito bom ver você praticando a lógica de repetição com arrays. Essa é uma base importante para lidar com conjuntos de dados.

Analisando o seu código, notei um detalhe técnico que causará um erro durante a execução, especificamente um IndexOutOfRangeException. Isso acontece porque, ao usar while(i <= w), o loop tentará acessar um índice que não existe.

Em C#, assim como em muitas linguagens, os índices de um array começam em 0 e vão até o tamanho menos um. Se o array tem 6 elementos, os índices são de 0 a 5. Quando o seu código tenta acessar o índice 6 (porque você usou o operador <= ), o programa interrompe o funcionamento.

Pra ajustar e deixar seu código rodando perfeitamente, você pode alterar a condição para apenas "menor que" (<) e mover o Console.WriteLine para fora do bloco de repetição, garantindo que o total apareça apenas uma vez ao final.

double[] doacoes = { 103.54, 259.72, 82.16, 154.87, 364.45, 14.49 };
int i = 0;
int quantidade = doacoes.Length; // Usamos Length para arrays
double total = 0;

while (i < quantidade)
{
    total += doacoes[i];
    i++;
}

Console.WriteLine("Total de doações: " + total);

O que mudou?

  • Condição do loop: Alteramos para i < quantidade. Assim, o código percorre do índice 0 até o 5 e para antes de tentar acessar o 6.
  • Propriedade length: Para arrays simples em C#, costumamos usar .Length em vez de .Count(), que é mais comum em listas ou consultas LINQ.
  • Exibição do resultado: Ao colocar o Console.WriteLine fora do while, evitamos que o sistema imprima o valor parcial em cada passo da soma.

Caso queira ver mais detalhes sobre como os índices funcionam na memória, a documentação da Microsoft sobre arrays é excelente para visualizar essa estrutura.

Continue explorando essas estruturas.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!