循环未完成

本文关键字:未完成 循环 | 更新日期: 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(…)修改了"大小"。也许这就是为什么我仍然在成员变量前面加下划线的原因。很容易错过。