Olá, Bianca. Como vai?
O seu código está excelente e resolve perfeitamente o problema de percorrer a lista de notas para validar quem está acima ou abaixo da média. O uso do foreach foi a escolha ideal aqui, pois você precisava apenas ler cada elemento da lista sequencialmente, sem a necessidade de manipular os índices.
Para complementar os seus estudos e agregar ainda mais valor ao seu projeto em C#, podemos aplicar algumas boas práticas de refatoração para deixar o código mais limpo e profissional:
- Isolar a média em uma constante: Em vez de deixar o número 7 solto no código (o que chamamos de "número mágico"), é uma boa prática criar uma variável ou constante com um nome descritivo. Isso facilita a manutenção caso a média do curso mude no futuro.
- Simplificar a formatação da lista: Embora a indentação atual funcione, alinhar a abertura e o fechamento das chaves torna a leitura do bloco de código mais agradável.
Veja como o seu código ficaria aplicando essas melhorias:
List<double> notas = new List<double> { 8.5, 6.2, 9.1, 5.8, 7.4 };
const double MediaAprovacao = 7.0;
foreach (double nota in notas)
{
if (nota < MediaAprovacao)
{
Console.WriteLine($"O aluno com a nota {nota} está abaixo da média!");
}
else
{
Console.WriteLine($"O aluno com a nota {nota} está indo muito bem!");
}
}
Curiosidade técnica: Se em algum momento você precisasse alterar o valor da nota diretamente dentro da lista (por exemplo, dar meio ponto de bônus para cada aluno), o foreach não permitiria essa modificação direta na variável de iteração nota. Nesses casos de alteração de dados, o laço for tradicional seria o mais indicado. Como o seu objetivo era apenas leitura e exibição, sua escolha foi cirúrgica.
Parabéns pela resolução da atividade!
Espero que possa ter lhe ajudado!