2
respostas

[Bug] Percebi que ao escolher uma banda que ainda não tem notas, um Bug aparece

Olá a todos!

Percebi que ao escolher uma banda que ainda não tem notas, um bug aparece.

Segue abaixo minha resolução para quem tiver dificuldades. E se tiverem alguma sugestões de melhoria, são bem vindas!

void ExibirMediaDaBanda() 
{
    Console.Clear();
    ExibirTituloDaOpcao("Exibindo a média da Banda");
    Console.Write("Digite o nome da banda que deseja visualizar a média: ");
    string nomeDaBanda = Console.ReadLine()!;
    
    if (bandasRegistradas.ContainsKey(nomeDaBanda))
    {
        
        List<int> notasDaBanda = bandasRegistradas[nomeDaBanda];
        if (notasDaBanda.Count > 0)
        {
            Console.WriteLine($"\nA média das notas da banda {nomeDaBanda} é: {notasDaBanda.Average()}!");
            Thread.Sleep(6000);
            Console.Clear();
            ExibirOpcoesDoMenu();

        }
        else
        {
            Console.WriteLine($"\nA banda {nomeDaBanda} ainda não tem notas para ser calculada a média!");
            Console.WriteLine("\nClique uma tecla para voltar ao menu principal.");
            Console.ReadKey();
            Console.Clear();
            ExibirOpcoesDoMenu();
        }
    }
    else
    {
        Console.WriteLine($"\nA banda {nomeDaBanda} não está na lista");
        Console.WriteLine("\nClique em uma tecla para voltar ao menu principal.");
        Console.ReadKey();
        Console.Clear();
        ExibirOpcoesDoMenu();

    }
}
2 respostas

Olá Lorrayne!

Pelo que entendi, você está enfrentando um bug ao escolher uma banda que ainda não tem notas. O bug ocorre porque, quando a lista de notas da banda está vazia, o programa não está tratando esse caso corretamente.

Uma sugestão de melhoria para resolver esse problema é adicionar uma verificação antes de calcular a média das notas. Você pode adicionar um if para verificar se a lista de notas da banda está vazia. Se estiver vazia, você pode exibir uma mensagem informando que a banda ainda não tem notas e voltar ao menu principal.

Aqui está um exemplo de como você pode fazer essa alteração no seu código:

if (notasDaBanda.Count > 0)
{
    Console.WriteLine($"\nA média das notas da banda {nomeDaBanda} é: {notasDaBanda.Average()}!");
    Thread.Sleep(6000);
    Console.Clear();
    ExibirOpcoesDoMenu();
}
else
{
    Console.WriteLine($"\nA banda {nomeDaBanda} ainda não tem notas para ser calculada a média!");
    Console.WriteLine("\nClique uma tecla para voltar ao menu principal.");
    Console.ReadKey();
    Console.Clear();
    ExibirOpcoesDoMenu();
}

Com essa alteração, o programa irá exibir a mensagem correta quando a banda não tiver notas e voltará ao menu principal.

Espero que essa sugestão ajude a resolver o bug que você está enfrentando. Se tiver mais alguma dúvida, é só me dizer!

Espero ter ajudado e bons estudos!

Olá Renan,

O código que postei acima já está com uma solução para resolver a questão da banda que não tem notas. Sobre a sugestão eu gostaria de saber se tem alguma outra forma para resolver esse item sem ter que colocar um monte de ifs e else?

Obrigada!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software