C# 尝试/捕捉循环
我对编程和解决问题是新手。我有一个数组,我想用用户的输入填充,但我想确保它只包含1-25之间的整数,而不包含字符串输入。我该怎么做 到目前为止,我得到的代码是:C# 尝试/捕捉循环,c#,for-loop,if-statement,try-catch,C#,For Loop,If Statement,Try Catch,我对编程和解决问题是新手。我有一个数组,我想用用户的输入填充,但我想确保它只包含1-25之间的整数,而不包含字符串输入。我该怎么做 到目前为止,我得到的代码是: for (int i = 0; i < lottery.Length; i++) { Console.Write(i + ": "); try { input = int.Parse(Console.ReadLine()); lottery[i] = i
for (int i = 0; i < lottery.Length; i++)
{
Console.Write(i + ": ");
try
{
input = int.Parse(Console.ReadLine());
lottery[i] = input;
}
catch
{
Console.WriteLine("Only integers!");
i--;
}
}
for(int i=0;i
这段代码确保数组的唯一输入是整数,但如何让用户只写1-25之间的数字?我已经尝试了3个小时的Different if语句和其他循环,但无法解决它。请帮助。您不应该使用异常来遍历代码。对于性能而言,异常是代价高昂的事情,如果有办法避免,您应该始终使用这种方式。
在您的情况下,应该使用而不是解析。如果输入不是有效的整数,则此TryParse不会引发异常,但在传递给方法的out参数中返回已解析的数字(如果是整数)时返回false或true 这允许编写更简单的代码,使用while循环在出现错误时继续输入
for (int i = 0; i < lottery.Length; i++)
{
Console.Write(i + ": ");
// Start the loop with an invalid input
int input = 0;
while(input == 0)
{
if(int32.TryParse(Console.ReadLine(), out input);
{
// Got a valid integer, add out acceptance logic here
if(input > 0 && input <= 25)
lottery[i] = input;
else
{
Console.WriteLine("Type a number between 1 and 25");
// Not a valid range. Force the loop to continue
input = 0;
}
}
else
Console.WriteLine("Write only integers between 1-25");
}
}
for(int i=0;i0&&inputint[]彩票=新的int[5];
for(int i=0;i 如果(0<输入&输入错误,不要使用异常控制代码。改用TryParse并删除异常。我建议在查找时查找是什么。基本上,在for
循环的一次迭代中,您希望不断询问数字,直到提供正确的整数值。如果(输入>=1&&input请在答案中包含说明-仅代码没有多大帮助。
int[] lottery = new int[5];
for (int i = 0; i < lottery.Length; i++)
{
Console.WriteLine(i + ": ");
int input;
while(true)
{
string inp = Console.ReadLine();
if(Int32.TryParse(inp, out input) == true)
{
if (0 < input & input <= 25)
{
break;
}
else
{
Console.WriteLine("Only numbers 1-25");
}
}
else
{
Console.WriteLine("Only Integers");
}
}
lottery[i] = input;
}