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”);
}