gpt4 book ai didi

C# while 循环范围为 0 - 5

转载 作者:行者123 更新时间:2023-11-30 21:13:11 24 4
gpt4 key购买 nike

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

也就是说,如果满足以下任何条件,您希望用户再次输入:

  • 他们输入的号码无效。
  • 他们输入的数字小于 0。
  • 他们输入的数字大于 5。

您的问题是您没有使用 int.TryParse 返回的值(这是一个 bool 表示成功或失败);您只是使用写入 rating 的值在失败的情况下,它是 0(和 !(0 < 0))。

关于C# while 循环范围为 0 - 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6964541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com