对于程序,如果用户输入的数字不是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();
}
}
}
}
答案 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
循环继续循环。如果输入有效,则条件为假并且循环关闭。