我试图做一个Prime数字查找器,但不知道它为什么不工作。 当我运行调试测试时,控制台中没有任何显示。有人可以检查一下并告诉我我做错了吗?
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));
答案 0 :(得分:1)
你有一个无限循环。
由于您从不修改primeCount
或maxPrime
,因此总是为真:
while (primeCount < maxPrime)
为了结束该循环,您需要修改这两个值中的一个,使条件评估为false。
(注意:除此之外,代码中似乎还存在其他错误/问题。例如,num = num++;
不会执行您可能认为的错误。)