#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;
}给你两张图你就明明白白的。


第一次m=2 n=2 里面的表达式是n=2;n<2;n++ 所以只执行一次 2除以2 余0 直接跳出循环 此时n的值是2 m==n所以输出m=2
m++ 是运算完在+1 所以第一次循环m=2
它是先判断m<=50,然后执行代码区,然后在m++
应该是这样哈