问答详情
源自:4-14 结束语句之break语句

break 跳出循环

#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和n不是每次循环都相同的吗,

 if(m == n)   为什么要有这一句?

希望有人能解释一下把,我没有看懂,很懵有点。


提问者:qq_慕尼黑7117662 2019-07-02 22:16

个回答

  • 慕移动4012641
    2020-01-11 12:17:42

    当m=3的时候,n只能循环一次,那么n只能=2,为什么可以得出m==n,难道n还可以自增,不是说for循环内++1和1++无区别吗?

  • 慕粉1050523510
    2019-07-07 18:15:10

    #include <stdio.h>

    int main()

    {

        int m, n;

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

        {     //       2<=50//向下进行

     //                3<=50; m++; m=3

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

            { // 2<2退出循环 n++,n=3

     //n又初始化为2,2<3    3<3,假   

                if(    m%n==0    )

                     //3%2==1不等于0,if语句不成立        //什么条件下跳出当前循环

                  {

                    break;

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

    }

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

         //    2  ==2 //成立

          //   3  = =3       

        printf("%d  ", m);

                     //输出m=2

    }

    return 0;    

    }


  • leo皇
    2019-07-02 23:36:39

    break就是结束当前循环 ifm%n=0了之后,循环停止,自然跳出循环啊,我是这么理解的