【发布时间】:2021-03-08 04:43:52
【问题描述】:
我是 C# 新手,我真的需要你的帮助来完成一个项目。
这个想法是向用户询问 1-20 之间的 10 个数字。用户输入的数字存储在一个数组中。在下一阶段,我生成了一个随机数,然后程序将用户之前输入的所有数字与随机数进行比较。如果其中一个数字与程序匹配,则写下“你赢了!”之类的内容。
我当前的解决方案还可以,但我想要一个比当前解决方案更好的异常处理。这是我的问题:
正如您在下面的代码中看到的那样,我依靠循环和 try/catch 来确保用户输入有效数字,但经过多次测试,我发现如果您输入有效输入,假设第一次但不是第二个,无效的输入仍然被发送到 for 循环和下一个索引。 我想确保用户输入一个有效的数字,如果不是,for循环会暂时“暂停”,直到输入下一个有效的数字。
bool start = true; //Create a loop.
{
while (start == true)
{
try
{
for (int x = 0; x < vektor.Length; x++) //To fill my array.
{
Console.WriteLine("Enter a number between 1 and 20:");
vektor[x] = int.Parse(Console.ReadLine());
start = false;
}
}
catch
{
Console.WriteLine("Error, you need to enter a number!");
}
}
}
【问题讨论】:
-
使用
int.TryParse(),你不需要异常处理——只要看看TryParse()是返回true还是false并做出相应的响应。 -
谢谢!我也会看看那个解决方案!
标签: c# arrays for-loop exception try-catch