猿问

求助大大关于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;   
}

当中如果   if(m == n)   //n循环结束后,如果m=n的话就输出m
            printf("%d  ", m);

放入到break前面和上面有什么区别?

qq_Untouchable_13581289
浏览 1141回答 1
1回答

super_mb

当m=2时,内层for循环给n赋值为2,但是不满足n < m的条件,所以不进入循环。如果你把你所说的代码放到break前面,那么在这一轮循环中,不会输出m,但是,按照原来的代码,此时m和n的值都是2,所以应该会输出2。区别就出来了,当m=3时也是如此。
随时随地看视频慕课网APP
我要回答