如何在控制台应用程序中只输入数字c#

时间:2016-08-03 07:40:37

标签: c#

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

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();
        }
    }
}

3 个答案:

答案 0 :(得分:3)

这应该可以解决问题。

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

答案 1 :(得分: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");
}

答案 2 :(得分:1)

你应该使用&#34; TryParse&#34;而不是&#34; Parse&#34;并使用&#34;做{...} while&#34;循环,所以你不必重复丑陋的代码。

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

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();
    }
}