我正在尝试解决问题。 我的老师希望我们做一个带有摄氏温度到华氏度并转换的温度转换器的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
答案 0 :(得分:0)
这不是您想的那样:
switch (choice)
{
// case statements removed for brevity
} while (choice != 0);
它实际上是在这样做:
switch (choice)
{
}
while (choice != 0)
{
// infinite loop if choice != 0
}
这是因为switch
是一个控制块,而while
是一个单独的控制块。