Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# I';我想做一个质数查找器,但不明白为什么它';它不工作了_C#_List_Numbers_Primes - Fatal编程技术网

C# I';我想做一个质数查找器,但不明白为什么它';它不工作了

C# I';我想做一个质数查找器,但不明白为什么它';它不工作了,c#,list,numbers,primes,C#,List,Numbers,Primes,我正在尝试做一个质数查找器,但不明白为什么它不工作。 当我运行调试测试时,控制台中没有显示任何内容。有人能检查一下,告诉我我做错了什么吗 List<int> primes = new List<int>(); primes.Add(2); primes.Add(3); int maxPrime = 11; //The maximum found Primes int prim

我正在尝试做一个质数查找器,但不明白为什么它不工作。 当我运行调试测试时,控制台中没有显示任何内容。有人能检查一下,告诉我我做错了什么吗

  List<int> primes = new List<int>();
        primes.Add(2);
        primes.Add(3);
        int maxPrime = 11;                //The maximum found Primes
        int primeCount = primes.Count;     //Current Number of Primes
        int num = 4;                    //Current Number
        int x = 0;                 //
        int curPrime = primes[x];

        while (primeCount < maxPrime)
        {
            if (x != primeCount)
            {
                if (num % primes[x] == 0)
                {
                    num++;
                    x = 0;
                }
                else
                {
                    x++; 
                }
            }

            else
            {
                primes.Add(num);
                primeCount=primes.Count;
                x = 0;
            }
        }
        primes.ForEach(i => Console.Write("{0}\t", i));
List primes=new List();
添加(2);
添加(3);
int-maxPrime=11//找到的最大素数
int primeCount=primes.Count//当前素数
int num=4//当前编号
int x=0//
int curPrime=primes[x];
while(primeCountConsole.Write(“{0}\t”,i));

您有一个无限循环

由于您从不修改
primeCount
maxPrime
,因此这始终是正确的:

while(primeCount
为了结束该循环,需要修改这两个值中的一个,使条件的计算结果为false


(注意:除此之外,代码中似乎还存在其他错误/问题。例如,
num=num++;
不会执行您可能认为它会执行的操作。)

当您在调试器中单步执行代码时,观察到的行为与预期的行为有何区别?发生这种情况时的运行时值是什么?有很多关于如何实现这一点的工作示例,这里有一个更简单的示例,使用单个值增加
primeCount
会有所帮助。。。。
while (primeCount < maxPrime)