问题  使用开关将摄氏度转换为华氏度学位

Kevin91.

新成员
加入
2月12日,2021年
消息
2
编程经验
Beginner
我是一个初学者C#福彩12选5走势图员试图编写一个显示给用户菜单的简单应用福彩12选5走势图。当用户在运行时选择选项1时,福彩12选5走势图列出了0到100摄氏度转换为华氏度的值。选择选项2时,福彩12选5走势图计算并显示在转换为摄氏度的华氏度的0和212度之间的值之间的值列表。在相关方法中使用值100和212的常数。我试图以0-100的间隔向循环写入:for(int i = 0;一<100; i + = 4){console.writeline(i); }:但是,仍然无法弄清楚如何通过(i)并将其转换为getcelsiustofahrenheitline()方法以显示0-100的转换结果。 -
问题是,我只能通过转换结果输入的选项。这是我到目前为止所做的事情:


C#:
  public TemperatureConverter()
    {
        Start();
    }

    /// <summary>
    ///
    /// </summary>
    public void Start()

    {

        while (true)

        {
            int choice = ShowMenu();
            switch (choice)
            {
                case 0:
                    return;
                case 1:

                    Console.WriteLine();
                    while (true)
                    {

                        Console.Write("Enter Celsius:");

                        Console.WriteLine();
                        if (double.TryParse(Console.ReadLine(), out double celsius))
                        {
                            Console.WriteLine(ShowTableCelsiusToFahrenheit(celsius));
                            Console.WriteLine();
                            break;
                        }
                        
                    }
                    break;
                case 2:
                    Console.WriteLine();
                    while (true)
                    {
                        Console.Write("Enter Fahrenheit:");
                        if (double.TryParse(Console.ReadLine(), out double fahrenheit))
                        {
                            Console.WriteLine(ShowTableFahrenheitToCelsius(fahrenheit));
                            Console.WriteLine();
                            break;
                        }
                    }
                    break;
                default:
                    Console.WriteLine("You must enter 1 to convert to Celsius or 2 to convert to Fahrenheit or 0 to exit!");
                    break;
            }
        }
    }

    private double CelsiusToFarenheit(double celsius) => celsius * 9.0 / 5.0 + 32.0;
    private double FahrenheitToCelsius(double fahrenheit) => (fahrenheit - 32.0) * 5.0 / 9.0;
    private string ShowTableCelsiusToFahrenheit(double celsius) => $"{celsius}°C is {CelsiusToFarenheit(celsius)}°F";
    private string ShowTableFahrenheitToCelsius(double fahrenheit) => $"{fahrenheit}°F is {FahrenheitToCelsius(fahrenheit)}°C";

    public int ShowMenu()
    {
        int width = 28;
        while (true)
        {
            Console.WriteLine("MAIN MENU");
            Console.WriteLine("".PadLeft(width, '-'));
            Console.WriteLine("Celsius to Fahrenheit".PadRight(width - 3) + ": 1");
            Console.WriteLine("Fahrenheit to Celsius".PadRight(width - 3) + ": 2 ");
            Console.WriteLine("Exit the program".PadRight(width - 3) + ": 0 ");
            Console.WriteLine("".PadLeft(width, '-'));
            Console.WriteLine();
            Console.WriteLine("Your choice: ");
            string line = Console.ReadLine();
            if (int.TryParse(line, out int choice))
            {
                return choice;
            }
        }
    }

}
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,720
地点
悉尼,澳大利亚
编程经验
10+
这是一种像任何其他的方法。你知道如何调用方法并传递参数,对吗?在该代码中,您已经在做了很多次。这就是你所做的一切。调用方法,传递参数,它将返回结果。这:
C#:
private double CelsiusToFarenheit(double celsius) => celsius * 9.0 / 5.0 + 32.0;
只是一种更加简洁的方式来写这个:
C#:
private double CelsiusToFarenheit(double celsius)
{
    return celsius * 9.0 / 5.0 + 32.0;
}
 
最佳 底部