Olá, David! Como vai?
Parabéns pela resolução da atividade!
Observei que você explorou o uso do switch expression para simplificar a lógica das operações, utilizou muito bem a leitura de entradas com Console.ReadLine para interatividade e ainda compreendeu a importância da conversão de tipos para garantir cálculos corretos.
Uma dica interessante para o futuro é tratar possíveis erros de entrada com try catch. Assim:
try
{
Console.WriteLine("Digite o primeiro valor do cálculo:");
int value1Num = int.Parse(Console.ReadLine()!);
Console.WriteLine("\nAgora digite o operador do cálculo:");
string operation = Console.ReadLine()!;
Console.WriteLine("\nDigite o segundo valor do cálculo:");
int value2Num = int.Parse(Console.ReadLine()!);
decimal result = operation switch
{
"+" => value1Num + value2Num,
"-" => value1Num - value2Num,
"/" => value2Num != 0 ? (decimal)value1Num / value2Num : throw new DivideByZeroException(),
"*" => value1Num * value2Num,
_ => throw new InvalidOperationException("Operador inválido")
};
Console.WriteLine($"\nResultado: {result}");
}
catch (Exception ex)
{
Console.WriteLine($"Erro: {ex.Message}");
}
Isso faz com que o programa seja mais robusto e evite falhas inesperadas.
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!