我怕来不及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++,到此第四次循环结束。
好了,以后的都同上,我这样的思路对吗?谢谢耐心查看。
不对,子循环第一项判断为假的话就会直接跳过去,不执行此循环,n的值也不会增加,直接跳到if语句进行判断输出之后跳出子循环,开始第二次父循环
我就问一下,你能把你的原代码打出来吗
C语言入门
926210 学习 · 20797 问题
相似问题