第一步m不是已经等于三了吗,那个2是怎样输出来的

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

慕九州3323890

2019-03-11 22:43

#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;    
}


写回答 关注

4回答

  • 徐无庸
    2019-03-27 18:14:04
    已采纳

    给你两张图你就明明白白的。

    https://img2.mukewang.com/5c9b4ce700013b1303130095.jpg

    https://img4.mukewang.com/5c9b4ce70001a0e404290203.jpg


    慕圣7336...

    还是不懂,第一次m=2 n=2 里面的表达式是n=2;n<2;n++,n<2不满足,不就不执行了吗,不就m++了吗

    2019-10-15 13:20:28

    共 1 条回复 >

  • 慕瓜3118916
    2019-03-23 20:16:42

    第一次m=2 n=2 里面的表达式是n=2;n<2;n++  所以只执行一次 2除以2 余0 直接跳出循环 此时n的值是2 m==n所以输出m=2

    慕瓜3168...

    n<2 不满足为啥还执行一次呢

    2019-06-02 19:18:07

    共 3 条回复 >

  • qq_慕田峪054841
    2019-03-22 19:54:28

    m++ 是运算完在+1 所以第一次循环m=2


  • 慕瓜7465100
    2019-03-11 23:29:32

    它是先判断m<=50,然后执行代码区,然后在m++

    应该是这样哈

C语言入门

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

926025 学习 · 20793 问题

查看课程

相似问题