范围为0-5的C#while循环
我是c#新手,试图通过使用范围为0-5的while循环来创建验证,我的问题是,当使用该范围时,它也接受字符串,我如何停止此操作并只允许整数0-5 到目前为止我的代码范围为0-5的C#while循环,c#,validation,loops,while-loop,C#,Validation,Loops,While Loop,我是c#新手,试图通过使用范围为0-5的while循环来创建验证,我的问题是,当使用该范围时,它也接受字符串,我如何停止此操作并只允许整数0-5 到目前为止我的代码 static void Main() { int Rateing1, Rateing2; Console.Write("Please rate from 0 - 5: "); Rateing1 = valid_rating(); Conso
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;
}
static void Main()
{
国际评级1,评级2;
控制台。写下(“请从0-5:”);
评级1=有效的_评级();
控制台。写入(“\n从0到5的释放速率:”);
评级2=有效的_评级();
WriteLine(“\nRating1为{0}”,Rating1);
WriteLine(“rating2是{0}”,rating2);
}
静态int有效_额定值()
{
国际评级;
int.TryParse(Console.ReadLine(),out-rating);
而(评级<0 | |评级>5)
{
Console.Write(“\n无效输入,请输入0-5之间的整数”);
控制台。写入(“\n请输入新评级:”);
int.TryParse(Console.ReadLine(),out-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: ");
}
while(!int.TryParse(Console.ReadLine(),out rating)| | rating<0 | | rating>5)
{
Console.WriteLine();
Console.WriteLine(“输入无效,请输入0-5之间的整数”);
控制台。写入(“请输入新评级:”);
}
也就是说,如果满足以下任一条件,您希望用户再次输入输入:
- 他们输入了一个无效的号码
- 他们输入的数字小于0
- 他们输入的数字大于5
int.TryParse
返回的值(这是一个bool
表示成功或失败);您只是简单地使用写入评级
的值,在失败的情况下,该值为0(和!(0<0)
)。是否“有效输入”是字符串?你能出示你申报的东西吗?