Преобразователь температуры - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь решить проблему. Мой учитель хочет, чтобы мы сделали консоль C# с преобразователем температуры от Цельсия до Фаренгейта и переключателем. Проблема в том, что я продолжаю получать ошибки в своем кодировании, и я не знаю, с чего начал неправильно, чтобы полностью потеряться. Просто упомяну, что я в начале, и я был бы признателен за некоторую помощь.

Мы должны написать программу, которая отображает список температур в градусах Цельсия, переведенный в градусы Фаренгейта и наоборот. Для пользователя предоставляется выбор типа конверсий: меню должно повторяться до тех пор, пока пользователь не выберет 0 для выхода.

Когда выбран вариант 1, программа рассчитывает и отображает список значений от 0 до 212 градусов по Фаренгейту, конвертированные в градусы Цельсия, как показано на следующем изображении. Когда выбран вариант 2, программа выводит значения от 0 до 100 по Цельсию, конвертированные в градусы Фаренгейта.

Это мое начало:

using System;

namespace TempconverterA2
{
    class TemperatureConverter
    {
        public void Start()
        {

            Console.WriteLine("**************************************");
            Console.WriteLine("\t      MAIN MENU");
            Console.WriteLine("**************************************");
            Console.WriteLine(" Convert Fahrenheit to Celsius : 1");
            Console.WriteLine(" Convert Celsius to Farenheit : 2");
            Console.WriteLine(" Exit the Converter : 0");
            Console.WriteLine("**************************************");

            Console.WriteLine("\nYour choice: ");
            switch (choice)
            {
                case 1:
                    CalculateFarenheitToCelsius(F = 9 / 5 * C + 32);
                    break;
                case 2:
                    CalculateCelsiusToFarenhet(C = 5 / 9 * (F - 32));
                case 0: //do nothing (exists to loop)
                    break;

                default:
                    Console.WriteLine("Invalid option. Choose between 0 and 2.");
                    break;
            } while (choice != 0) ;
            public void CalculateCelsiusToFarenhet()
            {
                double convertedValue = 0;
                stringtextOut = string.Empty;

                for (int i= 0, i <= 100; i += 5)
                {
                    convertedValue = CalculateCelsiusToFarenhet(i);
                    textOut = string.Format("{0,16:f2} C = {1,6:f2} F", i, convertedValue);
                    Console.WriteLine(textOut);

                }
                Console.WriteLine();
    }
}//End of Start

1 Ответ

0 голосов
/ 18 февраля 2020

Это не делает то, что вы думаете:

switch (choice)
{
    // case statements removed for brevity          
} while (choice != 0);

Это действительно делает это:

switch (choice)
{

}

while (choice != 0)
{
    // infinite loop if choice != 0
}

Это потому, что switch является блоком управления, а while это отдельный блок управления.

...