c# while循环,范围0 - 5
本文关键字:范围 while 循环 | 更新日期: 2023-09-27 18:04:35
我是c#的新手,并试图通过使用范围为0 - 5的while循环来创建验证,我的问题是,当使用此范围时,它也接受字符串字符,我怎么能停止这一点,只允许整数0 - 5?
我的代码到目前为止
static void Main()
{
int Rateing1, Rateing2;
Console.Write("Please rate from 0 - 5: ");
Rateing1 = valid_rating();
Console.Write("'nPlease rate from 0 - 5: ");
Rateing2 = valid_rating();
Console.WriteLine("'nRateing1 is {0}", Rateing1);
Console.WriteLine("Rateing2 is {0}", Rateing2);
}
static int valid_rating()
{
int rating;
int.TryParse(Console.ReadLine(), out rating);
while (rating < 0 || rating > 5)
{
Console.Write("'nInvalid Input, please input an integer from 0 - 5");
Console.Write("'nPlease enter new rating: ");
int.TryParse(Console.ReadLine(), out rating);
}
return rating;
}
将循环改为:
while (!int.TryParse(Console.ReadLine(), out rating) || rating < 0 || rating > 5)
{
Console.WriteLine();
Console.WriteLine("Invalid Input, please input an integer from 0 - 5");
Console.Write("Please enter new rating: ");
}
也就是说,如果以下任何为真,您希望用户再次输入input:
- 他们输入了一个无效的号码。
- 他们输入的数字小于0。
- 他们输入的数字大于5。
您的问题是您没有使用int.TryParse
返回的值(这是指示成功或失败的bool
);您只是使用写入rating
的值,在失败的情况下,该值为0(和!(0 < 0)
)。