请大神看看我这么理解有没有错
#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,因为2<2不成立,所以跳出内循环,去执行判断m是否等于n,因为2=2所以输出2;
第二次循环:①m++,m=3,n=2,因为3%2=1,所以不满足第一个if;继续内循环②n++.m=3,n=3,又因为3<3不成立,所以跳出内循环,去执行判断m是否等于n,因为3=3,所以输出3;
带三次循环:①m++,m=4,n=2,因为4%2=0,所以满足第一个if,执行break跳出当前循环,去判断第二个if,因为4=2不成立,所以不输出4
........