C# 禁止用户键入单词而不是数字

C# Prohibiting user typing Words instead of numbers

我的控制台计算器有一些问题 我想禁止用户输入单词而不是数字。 我写了这段代码并将其转换为零,但我希望用户输入一个数字而不是单词。如果用户仍在输入单词,程序应该要求用户输入数字。

内部class程序 { 静态无效主(字符串[]参数)

    {
        Console.WriteLine("----------------------");
        Console.WriteLine("------Calculator------");
        Console.WriteLine("----------------------");
        do
        {

            double num1 = 0;
            double num2 = 0;
            double result = 0;
            bool result0;

            Console.WriteLine("Enter number one: ");
          
            try
            {
                double.TryParse(Console.ReadLine(), out num1);
                if ()
                {
                    Console.WriteLine("Incorrect number!\nType another number:");
                    num1 = Convert.ToDouble(Console.ReadLine());
                }

            }
             catch (Exception e)
            {

            }
                
            
            Console.WriteLine("Enter number two: ");

            num2 = Convert.ToDouble(Console.ReadLine());

你必须使用 double.TryParse() inside a if condition with negation operator.

如果要强制用户显示 "Incorrect number!\nType another number:" 消息直到用户输入正确的整数,请使用 while() 循环而不是 if() 条件。

while (!double.TryParse(Console.ReadLine(), out num1))
    Console.WriteLine("Incorrect number!\nType another number:");

为什么我们应该在 if 条件中使用 double.TryParse()

  • double.TryParse(),将字符串值解析为 double,如果转换成功与否,return 为真。
  • 在您的情况下,如果用户输入单词而不是数字,则转换将失败,使用 !(negation) 将再次迭代循环。