我不明白为什么我的Console.ReadLine()不起作用

c#

我对编程比较陌生,我正在从事各种项目以提高它。一个是我希望能够解决的不仅仅是基本的加法和减法的计算器。目前,我所拥有的只是二次公式的基础知识。但是我的设计会根据用户输入来决定要做什么。它提示用户“你想做什么?添加:Sub:Div:Mul:Quad Equation:”在“Add”中打字后,代码运行正常,但如果我输入任何其他内容,如“Sub”或“Div” . 它什么都不做。甚至不回吐错误。据我所知,我的代码很好(这是糟糕的代码,但它应该可以工作)但我只是不知道如何继续。

using System;

namespace Better_Calculator
{
    class Program
    {
        static void Main(string[] args)
        {
            double num01;
            double num02;

            double a;
            double b;
            double c;

            System.Console.WriteLine("Welcome to how you are going to cheat through math lol");
            System.Console.WriteLine("What would you like to do? nAdd: nSub: nDiv: nMul: nQuad Equation: ");

            if (Console.ReadLine() == "Add")
            {   
                System.Console.WriteLine("what is the first number?");
                num01 = Convert.ToInt32(Console.ReadLine());
                System.Console.WriteLine("what is the second number?");
                num02 = Convert.ToInt32(Console.ReadLine());

                Add(num01, num02);
            }
            else if (System.Console.ReadLine() == "Sub")
            {
                System.Console.WriteLine("what is the first number?");
                num01 = Convert.ToInt32(Console.ReadLine());
                System.Console.WriteLine("what is the second number?");
                num02 = Convert.ToInt32(Console.ReadLine());

                Sub(num01, num02);                
            }
            else if (System.Console.ReadLine() == "Mul")
            {
                System.Console.WriteLine("what is the first number?");
                num01 = Convert.ToInt32(Console.ReadLine());
                System.Console.WriteLine("what is the second number?");
                num02 = Convert.ToInt32(Console.ReadLine());


                Mul(num01, num02);
            }
             else if (System.Console.ReadLine() == "Div")
            {
                System.Console.WriteLine("what is the first number?");
                num01 = Convert.ToInt32(Console.ReadLine());
                System.Console.WriteLine("what is the second number?");
                num02 = Convert.ToInt32(Console.ReadLine());


                Div(num01, num02);
            }
            else if (System.Console.ReadLine() == "Quad Equation")
            {
                System.Console.WriteLine("what is a?");
                a = Convert.ToInt32(Console.ReadLine());               
                System.Console.WriteLine("what is b");
                b = Convert.ToInt32(Console.ReadLine());
                System.Console.WriteLine("what is c");
                c = Convert.ToInt32(Console.ReadLine());

                Quad(a, b, c);
            }

            static void Add(double num01, double num02)
            {
                string answer = Convert.ToString(num01 + num02);
                System.Console.WriteLine(answer);
            }
            static void Sub(double num01, double num02)
            {
                string answer = Convert.ToString(num01 - num02);
                System.Console.WriteLine(answer);
            }
            static void Mul(double num01, double num02)
            {
                
                string answer = Convert.ToString(num01 * num02);
                System.Console.WriteLine(answer);
            }
            static void Div(double num01, double num02)
            {
                string answer = Convert.ToString(num01 / num02);
                System.Console.WriteLine(answer);
            }
            static void Quad(double a, double b, double c)
            {
                
                double bNeg = b * -1;
                double bSqr = b * b;
                double SqR = Math.Sqrt(bSqr - (4 * a * c));

                double solvedAdd = (bNeg + SqR) / (2 * a);
                double solvedSub = (bNeg - SqR) / (2 * a);

                string answer = Convert.ToString(solvedAdd) + " or " + Convert.ToString(solvedSub);

                System.Console.WriteLine(answer);

            }       
        }
    }
}

回答

对于每个“if”,您Console.ReadLine()再次调用,因此如果您输入“Quad equation”,则您的代码已经通过了 5 Readlines,直到您到达执行 Quad equation 的代码。

解决方案:只做一个 Console.ReadLine() 并将其结果放入一个变量中:

var userInput = Console.ReadLine();

然后,userInput在您的if陈述中进行测试(例如)e:

else if (userInput == "Sub")


以上是我不明白为什么我的Console.ReadLine()不起作用的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>