C#:如何创建一个只接受0或更高整数值的程序?

时间:2013-10-04 00:21:10

标签: c#

对于程序,如果用户输入的数字不是0或更高的数字,那么程序会说“无效。请输入0或更高的数字”。然后该程序将继续说“无效。输入一个0或更高的数字。”一次又一次地输入0或更高的数字。

问题是如果我输入一个字母,程序就不会回答“无效。请输入一个0或更高的数字。”

到目前为止,这是我所能做的一切:

    class Program
    {
        static void Main(string[] args)
        {
            string numberIn;
            int numberOut;

            numberIn = Console.ReadLine();

            if (int.TryParse(numberIn, out numberOut))
            {
                if (numberOut < 0)
                {
                    Console.WriteLine("Invalid. Enter a number that's 0 or higher.");
                Console.ReadLine();
                }
            }           
        }
    }

3 个答案:

答案 0 :(得分:3)

你需要某种循环。也许是一个while循环:

static void Main(string[] args)
{
    string numberIn;
    int numberOut;

    while (true) 
    {
        numberIn = Console.ReadLine();

        if (int.TryParse(numberIn, out numberOut))
        {
            if (numberOut < 0)
            {
                Console.WriteLine("Invalid. Enter a number that's 0 or higher.");
            }
            else
            {
                break; // if not less than 0.. break out of the loop.
            }
        }    
    }

    Console.WriteLine("Success! Press any key to exit");
    Console.Read();
}

答案 1 :(得分:2)

将if替换为:

while (!int.TryParse(numberIn, out numberOut) || numberOut < 0)
{
    Console.WriteLine("Invalid. Enter a number that's 0 or higher.");
    numberIn = Console.ReadLine();
} 

答案 2 :(得分:0)

如果你想要一个简单,整洁的方法,你可以使用它:

while (Convert.ToInt32(Console.ReadLine()) < 0)
{
    Console.WriteLine("Invalid entry");
}

//Execute code if entry is correct here.

每次用户输入一个数字时,它会检查输入的数字是否小于0.如果输入无效,则while循环继续循环。如果输入有效,则条件为假并且循环关闭。