1
resposta

[Projeto] Resposta Calculadora de operações básicas

int estagio = 0;
double primeiroNumero = 0;
double segundoNumero = 0;
void mostraTitulo()
{
    Console.WriteLine(@"
░█████╗░░█████╗░██╗░░░░░░█████╗░██╗░░░██╗██╗░░░░░░█████╗░██████╗░░█████╗░██████╗░░█████╗░
██╔══██╗██╔══██╗██║░░░░░██╔══██╗██║░░░██║██║░░░░░██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗
██║░░╚═╝███████║██║░░░░░██║░░╚═╝██║░░░██║██║░░░░░███████║██║░░██║██║░░██║██████╔╝███████║
██║░░██╗██╔══██║██║░░░░░██║░░██╗██║░░░██║██║░░░░░██╔══██║██║░░██║██║░░██║██╔══██╗██╔══██║
╚█████╔╝██║░░██║███████╗╚█████╔╝╚██████╔╝███████╗██║░░██║██████╔╝╚█████╔╝██║░░██║██║░░██║
░╚════╝░╚═╝░░╚═╝╚══════╝░╚════╝░░╚═════╝░╚══════╝╚═╝░░╚═╝╚═════╝░░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝");
}

void atualizaTela()
{
    Console.Clear();
    mostraTitulo();
    switch (estagio)
    {
        case 1:
            Console.WriteLine($"\nPrimeiro Número: {primeiroNumero}");
            break;
        case 2:
            Console.WriteLine($"\nPrimeiro Número: {primeiroNumero}");
            Console.WriteLine($"Segundo Número: {segundoNumero}");
            break;
        default:
            break;
    }
}

atualizaTela();
primeiroNumero = recebeNumero("primeiro");
atualizaTela();
segundoNumero = recebeNumero("segundo");
atualizaTela();
Console.Write("\nDigite a operação (+, -, *, /): ");
recebeOperacao();

double recebeNumero(string ordemNumero)
{
    while (true)
    {
        Console.Write($"\nDigite o {ordemNumero} número: ");
        if (double.TryParse(Console.ReadLine(), out double numero))
        {
            estagio++;
            return numero;
        }
        else
        {
            atualizaTela();
            Console.WriteLine("\n> Número inválido, por favor digite um número.");
        }
    }
}

void recebeOperacao()
{
    while (true)
    {
        string operacao = Console.ReadLine();
        double resultado = 0;
        Console.WriteLine("\nRESULTADO:");
        switch (operacao)
        {
            case "+":
                resultado = primeiroNumero + segundoNumero;
                Console.WriteLine($"{primeiroNumero} {operacao} {segundoNumero} = {resultado}");
                return;
            case "-":
                resultado = primeiroNumero - segundoNumero;
                Console.WriteLine($"{primeiroNumero} {operacao} {segundoNumero} = {resultado}");
                return;
            case "*":
                resultado = primeiroNumero * segundoNumero;
                Console.WriteLine($"{primeiroNumero} {operacao} {segundoNumero} = {resultado}");
                return;
            case "/":
                if (segundoNumero != 0)
                {
                    resultado = primeiroNumero / segundoNumero;
                    Console.WriteLine($"{primeiroNumero} {operacao} {segundoNumero} = {resultado}");
                    return;
                }
                else
                {
                    Console.WriteLine("\n> Erro, não é possível dividir por zero!");
                    return;
                }
            default:
                atualizaTela();
                Console.Write("\n> Operador inválido, por favor digite um operador (+, -, *, /): ");
                break;
        }
    }
}
1 resposta

Oi, Willian! Como vai?

Sua calculadora ficou muito bem estruturada, com funções separadas para cada etapa da interação. A ideia de usar o switch para mostrar o progresso dos números na tela conforme o estágio avança deixa a experiência mais amigável para quem está usando.

Uma dica interessante para o futuro é usar o método ToString("F2") para exibir os números com duas casas decimais, deixando o resultado mais legível quando trabalhar com divisões, por exemplo:


double resultado = 5.0 / 3.0;
Console.WriteLine(resultado.ToString("F2"));

Esse código mostra 1.67 em vez de 1,666666..., facilitando a leitura.

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