【问题标题】:how to enter only numbers in console application c# [duplicate]如何在控制台应用程序c#中只输入数字[重复]
【发布时间】:2016-08-03 07:40:36
【问题描述】:

我有一个简单的控制台应用程序,我希望它只能输入数字。这是代码

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
        int n, sum;
        sum = 5000;
        Console.WriteLine("enter number of conversations");
        n = int.Parse(Console.ReadLine());
        if (n <= 100)
        {
            sum = sum + n * 5;
        }
        else
        {
            sum += (100 * 5) + (n - 100) * 7;
        }
        Console.WriteLine(sum);
        Console.ReadKey();
        }
    }
}

【问题讨论】:

  • 那么问题出在哪里?

标签: c#


【解决方案1】:

这应该可以解决问题。

Console.Write("enter number of conversations ");
int n;

while(!int.TryParse(Console.ReadLine(), out n)
{
     Console.Clear();
     Console.WriteLine("You entered an invalid number");
     Console.Write("enter number of conversations ");
}

if(n <= 100)
  //continue here

【讨论】:

    【解决方案2】:

    在这种情况下,您的投注选项是int.TryParse,而不是int.Parse(),它可以帮助您确定无效输入。您可以实现以下逻辑以使其工作;

    Console.WriteLine("enter number of conversations");
    if(int.TryParse(Console.ReadLine(), out n)
    {
        if (n <= 100)
        {
            sum = sum + n * 5;
        }
        else
        {
            sum += (100 * 5) + (n - 100) * 7;
        }
        Console.WriteLine(sum);
    }
    else
    {
       Console.WriteLine("Invalid input , Enter only number");
    }
    

    【讨论】:

      【解决方案3】:

      您应该使用“TryParse”方法而不是“Parse”并使用“do{...}while”循环,这样您就不必重复丑陋的代码。

      注意我添加了一个字符串变量来处理用户输入。此代码将一次又一次地询问转换次数,直到输入有效数字。然后它将执行您的其余代码。

      class Program
      {
          static void Main(string[] args)
          {
              int n, sum;
              string input;
              sum = 5000;
      
              do
              {
                  Console.WriteLine("enter number of conversations");
                  input = Console.ReadLine();
              } while (int.TryParse(input, out n) == false);
      
              if (n <= 100)
              {
                  sum = sum + n * 5;
              }
              else
              {
                  sum += (100 * 5) + (n - 100) * 7;
              }
              Console.WriteLine(sum);
              Console.ReadKey();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2012-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-21
        • 2013-04-20
        • 1970-01-01
        相关资源
        最近更新 更多