有点仔细,我这样想对吗?感谢耐心查看

来源:4-14 结束语句之break语句

我怕来不及3358485

2016-05-28 22:38

运行父循环m=2,m<=50(真)所以执行代码块;

即执行子循环for(n=2;n<m;n++),n=2,n<=m(假),所以直接停止循环,但还是要执行代码块if(m%n == 0),此时为2%2==0(真),y又因为break所以跳出字循环接着运行父循环代码块接下的项:

if(m==n),此时2==2(真),所以输出2,此时运行父循环表达式3即m++,到此第一次循环结束。

第二次循环:略~,到子循环阶段,由于n<m(真),所以执行子循环的代码块if(3%2==0),此为(假),接着执行子循环的表达式3即n++,此时n<m即3<3(假),停止循环但还是执行子循环的代码块if(3%3==0),此为(真)且因break所以跳出子循环执行父循环剩下的项,if(m==n)

,此为(真),所以输出3,再执行父循环表达式3即m++,到此第二次循环结束。

第三次循环同上,子循环中n<m(真),执行代码块if(4%2==0)为(真)且因break,所以推出子循环执行父循环剩下项if(m==n)为(假),因此不输出m,执行m++,到此第三次循环结束。

第四次循环同上,子循环中n<m(真),执行代码块if(5%2==0)为(假),执行表达式3即n++,回到n<m即3<5(真),所以执行代码块if(5%3==0)为(假),同上。

直到n<m即5<5(假),所以子循环停止循环但依然执行代码块if(5%5==0)为(真)且因break所以跳出子循环之心父循环代码块的剩下项fi(m==n)为(真),所以输出5,执行表达式m++,到此第四次循环结束。

好了,以后的都同上,我这样的思路对吗?谢谢耐心查看。




写回答 关注

2回答

  • imooc_粉丝
    2016-09-11 15:05:43

    不对,子循环第一项判断为假的话就会直接跳过去,不执行此循环,n的值也不会增加,直接跳到if语句进行判断输出之后跳出子循环,开始第二次父循环

  • qq_二蛋_03306354
    2016-05-29 04:56:47

    我就问一下,你能把你的原代码打出来吗

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题