C# 在数组中输入数字时使用循环进行验证
好的,基本上我有这个代码,我需要输入0-37之间的7个数字,我不想输入任何其他数字,我试着用if/else语句和do/while来做,但我不能完全正确,我希望它继续,直到你输入0-37之间的7个数字。我该怎么做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;
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;
}