C语言之break与continue语句

一.break语句

功能:在循环语句和switch语句,终止并跳出循环体或开关体。

C语言之break与continue语句_第1张图片

说明:
(1)break不能用于循环语句和switch语句之外的任何其它语句之中。

(2)在循环语句中,一般break语句与if语句一起使用。

(3)break只能终止并跳出最近一层的结构。

(4)利用break语句可以在循环体的任何位置上结束循环,破坏了循环结构的正常执行顺序,因此,它是一个不符合结构化原则的语句。

例1.在全系1000名学生中,征集慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数,以及平均每人捐款的数目。

问题分析:

1.循环次数不确定,但最多循环1000次。
2.累计捐款总数10万,用if语句检查是否达到10万元。
.如果达到就不再继续执行循环,终止累加。

C语言之break与continue语句_第2张图片

代码如下:

#include
void main()
{
   int i,a,n=0,sum=0,aver;
   for(i=0;i<1000;i++)
   {
     scanf("%d",&a);
     n++;
     sum=sum+a;
     if(sum>=100000)
     break;
    }
    aver=sum/n;
    printf("此时的捐款人数是:%d,平均捐款是:%d",n,aver);
}

例2.输入两个正整数m和n,求其最大公约数和最小公倍数。


穷举法:最大公约数就是同时能整除这两个数的最大整数k。把较小的数从大到小列举,即:对较小数按照从大到小的顺序寻找满足条件的自然数k。

C语言之break与continue语句_第3张图片

代码如下:

#include
void main()
{
   int m,n,t,i;
   printf("请输入m和n:");
   scanf("%d%d",&m,&n);
   if(m>n)
   {
      t=m;
      m=n,
      m=t;
   }
   for(i=m;m>=1;i--)
   {
      if(m%i==0&&n%i==0)
      {
      printf("最大公约数是:%d\n",i);
      break;
      }
   } 
   printf("最小公倍数是:%d",m*n/i);
}

二.continue语句

功能:提前结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断。
说明:
(1)仅用于循环语句中,和break一样,通常和if一起使用。

(2)在嵌套循环的情况下,continue语句只对包含它的最内层的循环体语句起作用。

(3)利用continue语句可以在循环体的任何位置上结束本次循环而开始下次的循环,破坏了循环结构的正常执行顺序,因此,它也是一个不符合结构化原则的语句。

C语言之break与continue语句_第4张图片

例3.输出100~200之间的不能被3整除的数。

C语言之break与continue语句_第5张图片

代码如下:

#include
void main()
{
   int i;
   for(i=100;i<=200;i++)
   {
       if(i%3==0)
       continue;
       printf("%d ",i);
    }
}

三.continue语句和break语句的区别

 

C语言之break与continue语句_第6张图片

 

  • continue语句只结束本次循环,而不是终止整个循环的执行。

  • break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

 

例4.判断整数m是否素数。

问题分析:

素数是指除了能被1和它本身整除外,不能被其它任何整数整除的数。例如,17就是一个素数,除了1和17之外,它不能被2~16之间的任何整数整除。

判断素数的方法:把m作为被除数,以i(2~(m-1))依次作为除数,判断被除数m与除数i相除的结果,若余数都不为0,则说明m是素数,反之,只要有一次能除尽(余数为0),则说明m存在一个1和它本身以外的另一个因子,它不是素数。

但是都不为0很难表示,我们采用若m%i为0,则判定m不是素数,并终止对其余i值的检验。否则,令i=i+1;并继续对其余i值进行检验,直到全部检验完毕
为止,这时判定m是素数。

C语言之break与continue语句_第7张图片

代码如下:

#include
void main()
{
   int a,i,s=0;
   printf("请输入一个数:");
   scanf("%d",&a);
   for(i=2;i    {
       if(a%i==0)
       {    
         s=1;
         printf("%d不是素数",a);
         break;
        }
    } 
    if(s==0)
    printf("%d是素数",a);
}   

 

 

 

 

你可能感兴趣的:(c语言)