Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Desafio] Função para exibir a média de uma banda - minha solução

Elaborei a seguinte solução para o desafio proposto:

void calcularMediaBanda()
{
    Console.Clear();
    exibirTituloOpcaoMenu("Média de avaliação da banda");
    string nomeBanda;
    do
    {
        Console.Write("Digite o nome da banda que deseja exibir a média de avaliação: ");
        nomeBanda = Console.ReadLine()!;

        if (!bandasRegistradas.ContainsKey(nomeBanda))
        {
           Console.Write($"\nA banda {nomeBanda} não está registrada!\n");
        }

    } while (!bandasRegistradas.ContainsKey(nomeBanda));

    if (bandasRegistradas[nomeBanda].Count == 0)
    {
        Console.WriteLine($"\nA banda {nomeBanda} não possui avaliações registradas!");
        Console.WriteLine("Aperte alguma tecla para voltar ao menu principal");
        Console.ReadKey();
        Console.Clear();
        exibirLogo();
        exibirMenuOpcoes();
    }

    float somaNotas = 0;
    float mediaBanda = 0;

    for (int i = 0; i < bandasRegistradas[nomeBanda].Count; i++)
    {
        somaNotas += bandasRegistradas[nomeBanda][i];
    }

    mediaBanda = somaNotas / bandasRegistradas[nomeBanda].Count;

    Console.WriteLine($"A nota média de avaliações da banda {nomeBanda} é {mediaBanda:F2}");
    Console.WriteLine("Aperte alguma tecla para voltar ao menu principal");
    Console.ReadKey();
    Console.Clear();
    exibirLogo();
    exibirMenuOpcoes();
}
1 resposta

Oi, Matheus. Tudo bem com você?

Sua solução para o desafio da função de média da banda ficou bem completa, principalmente na validação do nome informado e no cálculo das notas. Você utilizou ContainsKey() para verificar se a banda está registrada e o do...while garante que a pessoa continue informando um nome válido. Também foi uma boa escolha formatar a média com {mediaBanda:F2}, deixando o resultado com duas casas decimais.

Que outra situação você poderia validar nessa função para deixá-la ainda mais robusta?

Parabéns pela solução e por compartilhar seu código. Continue praticando e explorando essas possibilidades. O fórum está à disposição para você continuar compartilhando seus desafios.

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