#include <stdio.h>
int main()
{
int m, n;
for(m=2; m<=50; m++)
{
for(n=2; n<=m; n++)
{
if( m%n==0 ) //什么条件下跳出当前循环
break; //这里应该退出当前循环了
}
if(m == n) //n循环结束后,如果m=n的话就输出m
printf("%d ", m);
}
return 0;
}
不一样,跳出第二个循环后就会回到到第一个循环,执行if(m==n){};m++;后就会再次来到第二循环,此时n被再次定义为2,n!=m。
你的第二个for循环应该是在第一个for循环之下的,这是一个双重循环。
比如说n=3的时候,m会循环,n被每一个不同的m取余。
3%2!=0 继续第二个循环
3%3=0 结束第二个循环
输出3