1
resposta

Sistema de recompensas

void ResultadoFinal()
{
    Console.WriteLine("Digite o código de recompensa (DOBRAR, CURAR, OURO, ESPECIAL):");
    string entrada = Console.ReadLine()!;

    string saida = entrada switch
    {
        "DOBRAR" => "Ganhar 2x EXP por 1 hora",
        "CURAR" => "Poção de cura",
        "OURO" => "1000 moedas de ouro",
        "ESPECIAL" => "Item lendário",
        _ => null!
    };
    if (saida is null)
    {
        Console.WriteLine("Recompensa indisponível");
    }
    else
    {
        Console.WriteLine($"{saida} desbloqueado!");
    }
}
ResultadoFinal();
1 resposta

Olá, Pedro, como vai?

O seu código utiliza corretamente a sintaxe de switch expression para realizar a atribuição direta da variável, demonstrando um bom domínio dessa funcionalidade do C#. A lógica de verificação de nulo para tratar cupons inválidos funciona bem para o propósito do exercício. Uma observação técnica é que, ao utilizar o valor padrão no switch para retornar a mensagem de erro diretamente, você consegue reduzir ainda mais o uso de estruturas condicionais externas como o if e o else.

Parabéns pela resolução do exercício e por compartilhar sua lógica conosco. Continue postando suas atividades para fortalecer seu aprendizado e saiba que o fórum está a disposição.

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