C# 在数组中输入数字时使用循环进行验证

C# 在数组中输入数字时使用循环进行验证,c#,C#,好的,基本上我有这个代码,我需要输入0-37之间的7个数字,我不想输入任何其他数字,我试着用if/else语句和do/while来做,但我不能完全正确,我希望它继续,直到你输入0-37之间的7个数字。我该怎么做 static void Main(string[] args) { int[] numbers = new int[7]; Console.WriteLine("Enter a number between 0-37"); for (int i = 0;

好的,基本上我有这个代码,我需要输入0-37之间的7个数字,我不想输入任何其他数字,我试着用if/else语句和do/while来做,但我不能完全正确,我希望它继续,直到你输入0-37之间的7个数字。我该怎么做

static void Main(string[] args) {
  int[] numbers = new int[7];
  Console.WriteLine("Enter a number between 0-37");

  for (int i = 0; i < numbers.Length; i++) {
    Console.WriteLine($"Enter {i + 1} number");
    numbers[i] = Convert.ToInt32(Console.ReadLine());
  }
}
static void Main(字符串[]args){
int[]数字=新的int[7];
Console.WriteLine(“输入一个介于0-37之间的数字”);
for(int i=0;i
试试这个:

static void Main(string[] args)
{
    int[] numbers = new int[7];
    Console.WriteLine("Enter a number between 0-37");

    bool IsGoodNumber(int n) => n >= 0 && n <= 37;

    for (int i = 0; i < numbers.Length; i++)
    {
        do
        {
            Console.WriteLine($"Enter {i + 1} number");
            numbers[i] = Convert.ToInt32(Console.ReadLine());
        } while (!IsGoodNumber(numbers[i]));
    }
}
static void Main(字符串[]args)
{
int[]数字=新的int[7];
Console.WriteLine(“输入一个介于0-37之间的数字”);
bool IsGoodNumber(int n)=>n>=0&&n n>=0&&n试试这个:

for (int i = 0; i < numbers.Length; i++)
{
    Console.WriteLine($"Enter {i + 1} number");
    while (!int.TryParse(Console.ReadLine(), out var number) || number < 0 || number > 37)
    {
        Console.WriteLine($"invalid number ");
    }
    
     numbers[i] = number;
}
for(int i=0;i37)
{
Console.WriteLine($“无效数字”);
}
编号[i]=编号;
}

请阅读您到底遇到了什么问题?我的问题是否不够清楚?LOL您应该声明嵌套循环,它将要求用户输入正确的数字,直到
转换.ToInt32(Console.ReadLine())
将不会在所需的时间间隔内返回数字。该数字不够集中。如果用户输入垃圾怎么办?@Orace您是对的,答案已更新。如果用户输入垃圾怎么办?@Orace这是一个单独问题的主题此问题是一个C#101问题,应该关闭。
for (int i = 0; i < numbers.Length; i++)
{
    Console.WriteLine($"Enter {i + 1} number");
    while (!int.TryParse(Console.ReadLine(), out var number) || number < 0 || number > 37)
    {
        Console.WriteLine($"invalid number ");
    }
    
     numbers[i] = number;
}