循环未完成
本文关键字:未完成 循环 | 更新日期: 2023-09-27 18:20:10
我有一个简单的程序,用于在给定输入大小和用户输入元素的情况下,将输入传递给数组,如下所示:全代码
除以下代码段外,所有代码都运行良好:
for(int i=0; i<size; i++) {
flagger = false;
while(flagger == false) {
System.Console.WriteLine("Please enter number " + i + " : ");
nextInput = System.Console.ReadLine();
flagger = errorCheck(nextInput);
}
int varPass = System.Convert.ToInt32(nextInput);
System.Console.WriteLine(flagger);
arr[i] = varPass;
}
无论我输入的大小如何,循环都会提前退出,并用一些空元素对数组进行排序,有人能看到问题吗?
在errorCheck中,您在将size值传入out参数时设置了该值。
因此,下次用户输入小于i的数字时,循环会提前退出。创建一个伪int或以不同的方式处理错误检查。示例:
static bool errorCheck(string input) {
int temp=0;
if (int.TryParse(input, out temp))
return true;
return false;
}
发生这种"错误"是因为大小是静态的。
您可以通过返回TryParse的结果来进一步简化代码。
static bool checkErr(string input) {
int temp=0;
return int.TryParse(input, out temp);
}
您还没有包含errorCheck方法,这对我来说似乎至关重要。如果errorCheck返回true,则循环将提前结束。编辑:哦,你确实包含了完整代码的链接。
正如我的前任所说,errorCheck(…)修改了"大小"。也许这就是为什么我仍然在成员变量前面加下划线的原因。很容易错过。