范围为0-5的C#while循环

范围为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

我是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;
          }
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)
)。

是否“有效输入”是字符串?你能出示你申报的东西吗?