c语言有些看不懂,求解释 非常谢谢 其中有两个if分别什么意思还有break什么意思? 具体些讲解我是在、不明

#include <stdio.h>
void main()
{
int i,m,sum;
scanf("%d",&m);
for(i=2;i<=m-1;i++)
if(m%i==0)break ;
if(i<=m-1)
printf("%d不是素数\n",m);
else
printf("%d是素数\n",m);

}

第1个回答  2012-04-18
for是一个循环,从i=2开始运算,每次循环结束之后i+1,第一个If是如果m除以i的余数如果是0,第二个if是当第一个if成立的情况下并且i是小于等于m-1的,就输出:这个数不是素数。else即不是以上情况的话就输出:这个数是素数。
懂了吗?追问

如果第一个if不成立break就直接跳出了吗?还用else吗? 还有对于第二个if是不是类似求余数1%2==0?

追答

哦,对,是跳出循环,如果m除以i的余数不等于0,才执行下一个if,是第二个范围内的if的话就输出:这个数不是素数。else即不是以上情况的话就输出:这个数是素数。

追问

感觉好晕 不过谢谢啊

追答

break应该是终止此次循环,进入i+1,这些都执行完了,进入第二个if的判定。这样解释明白吧

追问

那么此m就不是素数了吗?

第2个回答  2012-04-18
break
跳出所在一层循环 ,就是说条件符合后直接结束while循环 ,你这是for循环
continue
结束当前循环追问

是跳出if(m%i==0)break ;?如果成立为什么还有if

追答

#include
int main(void)
{
int i,m,sum;
scanf("%d",&m);
for(i=2;i<=m-1;i++)

if(m%i==0)
break ; //如果m%i == 0 的条件符合的时候, 就会跳出循环,结束程序,因为for循环下面没有语句了,有的话,执行for循环大括号外的语句
if(i<=m-1)
printf("%d不是素数\n",m);
else
printf("%d是素数\n",m);



成立的话跳出循环了,你的程序没有用括号把下面的if包括进来,要加进来,看我写的,
break了,括号内的程序都不执行了

追问

感觉好晕 不过非常感谢谢谢啊

本回答被网友采纳
第3个回答  2012-04-18
你百度搜编程教父这个人,他的视频课程不错。追问

谢谢啊 可以先解我的燃眉之急吗 谢谢啊

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网