大佬们 请问这个 n 代表什么? 既然n<m 那m%n==不可能等于0啊 为什么break条件是 m%n==0?

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

qq_慕姐8196170

2019-03-04 13:07

54f5856b0001997d04210276.jpg

这个是这个题目的参考答案  我愚钝,还是没有看懂   希望大佬们能帮忙解惑 谢谢了


写回答 关注

2回答

  • _Neil
    2019-03-04 16:33:22
    已采纳

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

    第二次m=3 n=2 里面的表达式是n=2;n<3;n++  两次循环 3除以2 余3 不成立 n++ 3除以3余0 跳出循环 而此时m=3 n=3所以输出m=3

    第三次m=4 n=2 里面的表达式是n=2;n<4;n++  三次循环 4/2 余0 跳出循环 m此时是4 n是2就跳出循环了 m!=2 不输出4

    第四次m=5 n=2 里面的表达式是n=2;n<5;n++  四次循环 5/2余5  5/3余5 5/4余5 5/5余0 跳出循环 此时m=5 n=5 输出5

    第五次 m=6 n=2  6/2余0 break  6不等于2   不输出

    第六次 m=7 n=2  一直循环到7/7才能break m=n输出7

    第七次 m=8 n=2  8/2余0 m不等于n break 不输出

    第八次 m=9 n=2  9/2余9  9/3余0 break 9不等于3 不输出

    第九次 m=10 n=2 10/2余0 不输出

    第10次 m=11 n=2   一直循环到11/11才能break

    蓝色的蓝莓

    第2个循环不应该n<=m,才有你的那种解说吗?

    2020-12-14 22:25:11

    共 7 条回复 >

  • 慕沐3193880
    2019-04-05 13:16:05

    我觉得应该是这样,上面的不对

    m=2时

    n=2;n<2(为假,直接结束循环)执行下一步if(m==n)为真,输出m的值2

    m=3时

    n=2;n<3(为真);执行下一步if(m%n==0)(为假,不执行break),继续循环,n++(此时n=3),

    n=3;n<3(为假,直接结束循环)执行下一步if(m==n)为真,输出m的值3

    m=4时

    n=2;n<4(为真);执行下一步if(m%n==0)(为真,执行break,跳出循环),执行下一步if(m==n)为假,不输出m的值

    以此类推

    因为任何数都能被1和本身整除,所以n的初始值为2,n<m

    m除以n,比如12能被2,3,4,6整除,而当除到2的时候就已经知道不是质数了,没必要再循环下去了,所以用break跳出循环

    我也是刚学的新手如有不对之处请指出

    绘梨衣的审判

    优秀!同样是新手,为何你如此突出!

    2019-09-02 16:08:01

    共 3 条回复 >

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题

m%n==0

回答 2

m%n==0

回答 3

m%n==0

回答 4