Switch Statement未显示输入的第二个数字

时间:2017-01-05 19:40:51

标签: c# syntax switch-statement

此测试的目的是让用户输入一个数字,然后显示输入的第二个数字。我一直试图弄清楚如何去做,但是我还不知道要问的正确问题,我对C#很新,尽管我对简单的C ++有相当多的经验节目。我写的一个原始的C#程序做了一个数学方程,当我做第二个数学方程时,默认变量已经改变,所以答案已经改变了。由于这个原因,第二个数学方程总是出错。我现在想要一个类似的结果,我不能回头看看那个旧程序,看看我做了什么,因为我删除它,因为它当时没有做我想做的事情。我有一个相关的问题,就是当变量从它的默认值变为其他东西的时候?

        Console.WriteLine("Please enter a number: ");
        int degrees = int.Parse(Console.ReadLine());

        switch (degrees)
        {

            case 1:
                Console.WriteLine("Enter in a number: ");
                Console.ReadLine();
                Console.WriteLine("You entered in {0}", degrees);
                break;

            case 2:
                Console.WriteLine("Enter in a number: ");
                Console.ReadLine();
                Console.WriteLine("You entered in {0}", degrees);
                break;



        }

1 个答案:

答案 0 :(得分:2)

Console.ReadLine()的第二次调用会在不使用它的情况下丢弃用户的输入。

        case 1:
            Console.WriteLine("Enter in a number: ");
            //  Result of call not used. 
            Console.ReadLine();
            Console.WriteLine("You entered in {0}", degrees);
            break;

Console.ReadLine()的第二次调用将返回用户在第二次提示时键入的任何文本。如果你希望degrees成为他输入的数字,你就必须解析那个字符串,就像你第一个那样。

        case 1:
            Console.WriteLine("Enter in a number: ");
            degrees = int.Parse(Console.ReadLine());
            Console.WriteLine("You entered in {0}", degrees);
            break;

您需要同样修改案例2。

您还应该处理用户输入无法解析的内容的情况,例如" pepe lol!1!"然后回击。但另一个问题是另一个问题。