请大神看看我这么理解有没有错

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

虚叚的真

2016-12-21 21:25

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

}

第一次循环:m=2,n=2,因为2<2不成立,所以跳出内循环,去执行判断m是否等于n,因为2=2所以输出2;

第二次循环:①m++,m=3,n=2,因为3%2=1,所以不满足第一个if;继续内循环②n++.m=3,n=3,又因为3<3不成立,所以跳出内循环,去执行判断m是否等于n,因为3=3,所以输出3;

带三次循环:①m++,m=4,n=2,因为4%2=0,所以满足第一个if,执行break跳出当前循环,去判断第二个if,因为4=2不成立,所以不输出4

........

写回答 关注

1回答

  • 慕粉2224229998
    2016-12-21 23:46:46

    #include <stdio.h>

    int main()

    {

        int m, n;

        for(m=2; m<=50; m++)

        {

            for(n=2; n<m; n++)

            {

                if(m%n==0)       //什么条件下跳出当前循环 !!!!!!当此时为非素数时 (例:m=4,n=2,m%2=0但m!=2)

                break;            //这里应该退出当前循环了

            }

            if(m == n)   //n循环结束后,如果m=n的话就输出m

            printf("%d  ", m);

        }

    return 0;    

    }


    虚叚的真

    ????

    2016-12-22 12:19:31

    共 1 条回复 >

C语言入门

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

926215 学习 · 20797 问题

查看课程

相似问题