我需要在C sharp中的Console Application中开发一个Calculator类型的程序

时间:2016-10-04 10:30:28

标签: c# .net

我是C sharp Programming的新手,我坚持使用一个程序来开发一个类似于计算器的程序,它将用户的输入转换为一个名为choice的int数据类型将读取用户的两个操作数进行计算,然后执行一个开关循环,根据所选的选项执行所需的操作,并给出输出结果。显示结果并打破案例后,程序将询问用户是否继续或不继续,反馈将存储在将要比较的字符变量上,如果选择Y,它将把程序的执行重定向到开始标签。 以下是相同的代码:

public static void Main(string[] args)
{
    int choice,op1,op2;
    char ch;
    start:
    Console.WriteLine("Enter First Operand");
    op1 = Convert.ToInt32(Console.ReadLine());
     Console.WriteLine("Enter Second Operand");
    op2 = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("Enter your Input \n1. For Addition \n2.For Subtraction \n3.For Multiplication \n4.For Division");
    choice = Convert.ToInt32(Console.ReadLine());
    switch (choice)
    {
        case 1:
            Console.WriteLine(op1+op2);

            break;
        case 2:
            Console.WriteLine(op1 - op2);
            break;
        case 3:
            Console.WriteLine(op1*op2);
            break;
        case 4:
            Console.WriteLine(op1/op2);
            break;
        default:
            Console.WriteLine("Please enter valid Choice");
            break;
    }
    end:
    Console.WriteLine("Do you want to Continue(Y/N)?");
    ch=Convert.ToChar(Console.Read());
    if (ch == 'Y')
    {
        goto start;
    }
    else if (ch == 'N')
    {
        Console.ReadKey(true);
    }
    else
    {
        Console.WriteLine("Please Enter Valid Choice");
        goto end;
    }   
}

但是当我运行代码时,它首次按需要输出,但是当我选择' Y'它显示错误"类型' System.FormatException'发生在mscorlib.dll"。请建议我一些更正

2 个答案:

答案 0 :(得分:6)

替换ch=Convert.ToChar(Console.Read());

ch = Console.ReadKey(true).KeyChar;

虽然如果我是纯粹主义者,我不得不说丢失标签并使用while循环。

答案 1 :(得分:1)

我已经测试了你的代码。 在线下面

ch=Convert.ToChar(Console.Read());

只需添加以下行,因为Console.Read()读取单个字符额外输入在缓冲区中。所以在read()之后清除缓冲区只需添加以下行。

Console.ReadLine();