//首先是for循环的正确代码,这里我没有异议
for(int i = 2;i <100;i++)
{
bool a = true;
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
a = false;
break;
}
}
if (a)
{
Console.WriteLine(i);
}
}
Console.ReadKey();
然后是用外层用while循环的代码:
//找出1-100内所有的质数(只能被1和他自己整除)
int i = 2;
while(i <=100)
{
bool a = true;
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
a = false;
break;
}
}
i++;
if (a)
{
Console.WriteLine(i);
}
}
Console.ReadKey();
第一个for循环代码正确这里不放结果了,下图是用while循环的错误结果
我觉得两个代码的效果应该是一样的啊?为啥后面的不对,是我while用的不对吗,求解。
供参考,修改处见注释:
//找出1-100内所有的质数(只能被1和他自己整除)
int i = 2;
while(i <=100)
{
bool a = true;
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
a = false;
break;
}
}
//i++; 这行移动到if(a){}下面
if (a)
{
Console.WriteLine(i);
}
i++; //移动到这里
}
Console.ReadKey();