Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Resposta - Conversão de Temperaturas

void menu()
{

    Console.WriteLine(@"
█▀▀ █▀█ █▄░█ █░█ █▀▀ █▀█ █▀ █▀█ █▀█   ▀█▀ █▀▀ █▀▄▀█ █▀█ █▀▀ █▀█ ▄▀█ ▀█▀ █░█ █▀█ ▄▀█
█▄▄ █▄█ █░▀█ ▀▄▀ ██▄ █▀▄ ▄█ █▄█ █▀▄   ░█░ ██▄ █░▀░█ █▀▀ ██▄ █▀▄ █▀█ ░█░ █▄█ █▀▄ █▀█");

    Console.Write("""

        Selecione uma opção:
        1 - Celsius para Fahrenheit
        2 - Fahrenheit para Celsius
        3 - Sair
        
        Opção: 
        """);
}

double celsius;
double fahrenheit;
int opcao;

do
{
    menu();

    if (!int.TryParse(Console.ReadLine(), out opcao))
    {
        Console.Write("\nOpção inválida. Digite um dos números disponíveis!");
        Thread.Sleep(1500);
        Console.Clear() ;
        continue;
    }

    switch (opcao)
    {
        case 1:
            Console.Write("\nDigite a temperatura em Celsius: ");
            if (double.TryParse(Console.ReadLine(), out celsius))
            {
                double conversaoFahrenheit = (celsius * 9.0 / 5.0) + 32.0;
                Console.WriteLine($"\n{celsius:F2}ºC equivalem a {conversaoFahrenheit:F2}ºF");
                Console.Write("\nDigite qualquer tecla para continuar.");
                Console.ReadKey();
                Console.Clear();
            }
            else
            {
                Console.Write("\nOpção inválida. Digite um número válido!");
                Thread.Sleep(1500);
                Console.Clear();
                continue;
            }
            break;

        case 2:
            Console.Write("\nDigite a temperatura em Fahrenheit: ");
            if (double.TryParse(Console.ReadLine(), out fahrenheit))
            {
                double conversaoCelsius = (fahrenheit - 32.0) * 5.0/9.0;
                Console.WriteLine($"\n{fahrenheit:F2}ºF equivalem a {conversaoCelsius:F2}ºC");
                Console.Write("\nDigite qualquer tecla para continuar.");
                Console.ReadKey();
                Console.Clear();
            }
            else
            {
                Console.Write("\nOpção inválida. Digite um número válido!");
                Thread.Sleep(1500);
                Console.Clear();
                continue;
            }
            break;

        case 3:
            Console.WriteLine("\nEncerrando o sistema.");
            break;

        default:
            {
                Console.Write("Opção inválida.");
                Thread.Sleep(1000);
                break;
            }
    }
} while (opcao != 3);
1 resposta
solução!

Oi! Como vai?

Gostei bastante da forma como estruturou o menu e aplicou o switch para controlar as opções. Também foi legal ver o uso do Thread.Sleep e Console.Clear() para tornar a experiência mais fluida.

Uma dica interessante para o futuro é usar o método Math.Round() para arredondar valores ao invés de formatar na exibição. Veja este exemplo:


double temperatura = 36.666;
double arredondado = Math.Round(temperatura, 1);
Console.WriteLine(arredondado);

Esse código exibe o número 36.7, já arredondado para uma casa decimal.

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