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

O laço certo para o problema

O laço mais adequado para esse tipo de situação, sem dúvida, é o foreach, já que não precisamos lidar com índices específicos, como ao colocar a nota para um aluno com base na posição da lista de presença, por exemplo. Por isso, como o objetivo é simplesmente percorrer e processar todos os valores dessa lista, usamos o foreach.

O processo do código é simples: teremos uma variável chamada nota, sendo equivalente a cada valor de notas dentro do loop. Inicialmente, com base nessa nota, verificamos a situação. Se a nota for abaixo de 7, a situação receberá o valor "abaixo da média"; caso contrário, receberá "indo muito bem".

List<double> notas= new List<double> {
    8.5,
    6.2,
    9.1,
    5.8,
    7.4
};
string situacao = "";

foreach (double nota in notas) {
    if (nota < 7) situacao = "abaixo da média";
    else situacao = "indo muito bem";
    Console.WriteLine ($"O aluno com a nota {nota} está {situacao}.");
}
1 resposta
solução!

Oi, Diego! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei da forma como você explicou a escolha do foreach. Sua análise faz sentido, já que nesse caso o objetivo é apenas percorrer todos os valores da lista sem depender de índices. A organização da lógica com a variável situacao e a verificação com if também deixou o fluxo do código bem claro para quem lê.

Uma dica interessante para o futuro é usar o metodo Average() da classe LINQ quando quiser descobrir rapidamente a media de uma lista de notas.


using System;
using System.Collections.Generic;
using System.Linq;

List notas = new List {8.5, 6.2, 9.1, 5.8, 7.4};

double media = notas.Average();

Console.WriteLine("Media da turma: " + media);
Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!