不是先判断再循环吗?我也不明白n<m的问题

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

xyu

2017-07-15 09:14

for循环,执行表达式1,n=2,然后表达式2,n<m,否,不就跳出循环了吗?

写回答 关注

3回答

  • 慕斯卡5168711
    2017-07-31 13:10:36

    那如果是4了 ? 

    centri... 回复钟阿瞒i

    大哥,4%2=2,余0,怎么就不余0啊??

    2017-08-18 15:37:10

    共 5 条回复 >

  • 冷寒nn
    2017-07-27 16:07:10

    你随便把一个数字带入里面,比如7,第一个For循环判断成立,进入第二For循环,此时n=2,m=7,m再这个循环里面是恒定的,成立,继续循环,接着n不断加一,最后加到7,才判定不成立,跳出循环,此时m=7,n=7,因为如果m=n就要输出出来,所以7被输出出来了。你可以试试把其它数字带入,m和n的值写出来,更好理解这个程序

    冷寒nn

    当m=4时,4除2余数为0,终止当前循环了,接下来if语句判断,m不等于2的,所以,m=4不能够被输出出来的

    2017-08-20 13:03:20

    共 2 条回复 >

  • MISS_time
    2017-07-15 16:13:22

        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);

    }

    这个m最开始的初始值为2然后进入子循环,发现不满足n<m这个条件跳过for(n=2; n<m; n++)这个循环,,满足if(m == n)打印出来这就是第一个素数2,然后m的自增1,继续循环


C语言入门

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

926027 学习 · 20793 问题

查看课程

相似问题