6th 循环控制

目录:

6     循环控制... 1

6.1    概述... 1

6.2    goto语句以及用goto语句构成循环... 1

6.3    while语句... 2

6.4    do-while语句... 4

6.5    for语句... 6

6.6    循环的嵌套... 9

6.7    几种循环的比较... 9

6.8    break和continue语句... 9

6.8.1   break语句... 9

6.8.2   continue 语句... 10

6.9    程序举例... 11

(部分摘录代码或相关文字版权属于原作者)

goto语句是一种无条件转移语句, 与BASIC中的goto语句相似。goto 语句的使用格式为:

     goto  语句标号;

 

while语句的一般形式为:

    while(表达式)语句

其中表达式是循环条件,语句为循环体。

 

do-while语句的一般形式为:

        do

            语句

        while(表达式);

 

在C语言中,for语句使用最为灵活,它完全可以取代 while 语句。它的一般形式为:

        for(表达式1;表达式2;表达式3) 语句

break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。



continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环




 程序举例

【例6.10】用公式求π。

N-S流程图:

#include<math.h>
main()
{
  int s;
  float n,t,pi;
  t=1,pi=0;n=1.0;s=1;
  while(fabs(t)>1e-6)
      {pi=pi+t;
       n=n+2;
       s=-s;
t=s/n;
      }
  pi=pi*4;       
  printf("pi=%10.6f\n",pi);
  }


【例6.11】判断m是否素数。

N-S流程图:

#include<math.h>
main()
{
int m,i,k;
scanf(“%d”,&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
printf(“%d is a prime number\n”,m);
else
printf(“%d is not a prime number\n”,m);
}

【例6.12】求100至200间的全部素数。

#include<math.h>
main()
{
int m,i,k,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
{printf(“%d”,m);
   n=n+1;}
      if(n%n==0)printf(“\n”);
}
printf(“\n”);
}