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

[Dúvida] Média e loop para array feitos de forma

Olá,

Talvez eu esteja só sendo precoce e ele altere o projeto mais para frente, mas fiquei com dúvidas. Por que o instrutor faz o teste de array utilizando "for" em vez de "foreach"? Além disso ele soma a soma de forma "manual", criando uma variável int chamada "acumulador" que torna o código ainda mais "complicado" do que deveria. Segue abaixo a versão do instrutor (corrigida pois estava errada na transcrição):

void TestaArrayInt()
{
    int[] idades = new int[5];
    idades[0] = 30;
    idades[1] = 40;
    idades[2] = 17;
    idades[3] = 21;
    idades[4] = 18;

    Console.WriteLine($"Tamanho do Array {idades.Length}");
    
    int acumulador = 0;
    for (int i = 0; i < idades.Length; i++)
    {
        int idade = idades[i]; 
        Console.WriteLine($"índice [{i}] = {idade}");
        acumulador+=idade;
    }
    
    int media = acumulador / idades.Length;
    Console.WriteLine($"Média de idades = {media}";
}

Agora, a versão "descomplicada":

void TesteDeArray()
{
    int[] idades = new int[5];
    idades[0] = 34;
    idades[1] = 44;
    idades[2] = 54;
    idades[3] = 64;
    idades[4] = 74;

    Console.WriteLine($"\n Tamanho do array: {idades.Length}");
    
    int indice = 0;
    foreach( int idade in idades)
    {
        Console.WriteLine($"indíce do array: {indice++} - idade: {idade}");
    }
    
        Console.WriteLine($"Média de idade: {idades.Average()}");
}

Edição 1 = Acabei de ver a aula seguinte, vi que ele acabou de nos apresentar o método "foreach", e provavelmente irei rever as outras funções como .Sum() e .Average(). Imagino que este curso seja mais antigo que os cursos iniciais, os quais devem ter sido refeitos e consequentemente recebido mais conteúdo.

Edição 2 = "Como apagar tópico. Google pesquisar."

1 resposta
solução!

Olá, Nicolas!

Entendo suas dúvidas, e acredito que elas são muito pertinentes. O uso de "for" ou "foreach" pode variar de acordo com a situação e a preferência do programador. No exemplo do instrutor, ele optou por usar "for" para ter um controle mais preciso do índice do array, o que é útil em alguns casos. Já no seu exemplo, o "foreach" é mais simples e direto, pois não requer a manipulação direta do índice.

Quanto à soma manual, é uma forma de demonstrar o processo passo a passo. Em um ambiente de aprendizado, isso pode ser útil para entender como as coisas funcionam "por baixo dos panos". No entanto, em um código de produção, você provavelmente usaria um método como .Sum() ou .Average(), como você fez no seu exemplo, para simplificar o código e torná-lo mais legível.

Sobre a ordem do curso, é comum que os instrutores apresentem conceitos mais básicos primeiro, para depois introduzir métodos e funções que abstraem esses conceitos. Isso ajuda a entender o que esses métodos estão fazendo internamente.

Quanto à sua última pergunta, não entendi ao certo, você quer apagar um tópico aqui do fórum? Se for isso não tem como, só dá para colocar como solucionado e fechar ele.

Espero ter ajudado e bons estudos!