3) 用 while 和 do…while 循环时,循环变量初始化的操作应在 while 和 do…while 语句之前完
成,而 for 语句可以在表达式 1 中实现循环变量的初始化。
6。8 break 和 continue 语句
6。8。1 break 语句
break 语句通常用在循环语句和开关语句中。当 break 用于开关语句 switch 中时;可使
程序跳出 switch 而执行 switch 以后的语句;如果没有 break 语句;则将成为一个死循环而
无法退出。break 在 switch 中的用法已在前面介绍开关语句时的例子中碰到;这里不再举
例。
当 break 语句用于 do…while、for、while 循环语句中时;可使程序终止循环而执行循环
后面的语句; 通常 break 语句总是与 if 语句联在一起。即满足条件时便跳出循环。
【例 6。8】
main()
{
int i=0;
char c;
while(1) /*设置循环*/
{
c='0'; /*变量赋初值*/
谭浩强 C 语言程序设计 2001 年 5 月 1 日
while(c!=13&&c!=27) /*键盘接收字符直到按回车或 Esc 键*/
{
c=getch();
printf(〃%cn〃; c);
}
if(c27)
break; /*判断若按 Esc 键则退出循环*/
i++;
printf(〃The No。 is %dn〃; i);
}
printf(〃The end〃);
}
注意:
1) break 语句对 if…else 的条件语句不起作用。
2) 在多层循环中; 一个 break 语句只向外跳一层。
6。8。2 continue 语句
continue 语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue 语
句只用在 for、while、do…while 等循环体中;常与 if 条件语句一起使用;用来加速循环。其
执行过程可用下图表示。
1) while(表达式 1)
{ ……
if(表达式 2)break;
……
}
2) while(表达式 1)
{ ……
if(表达式 2)continue;
……
}
【例 6。9】
main()
{
char c;
谭浩强 C 语言程序设计 2001 年 5 月 1 日
while(c!=13) /*不是回车符则循环*/
{
c=getch();
if(c0X1B)
continue; /*若按 Esc 键不输出便进行下次循环*/
printf(〃%cn〃; c);
}
}
6。9 程序举例
π
1
1
1
【例 6。10】用 4
= 1 ? + ? +
3 5 7
。。。
公式求π。
N…S 流程图:
谭浩强 C 语言程序设计 2001 年 5 月 1 日
#include
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。6fn〃;pi);
}
【例 6。11】判断 m 是否素数。
N…S 流程图:
#include
main()
{
int m;i;k;
scanf(“%d”;&m);
k=sqrt(m);
for(i=2;i=k+1)
printf(“%d is a prime numbern”;m);
else
printf(“%d is not a prime numbern”;m);
}
【例 6。12】求 100 至 200 间的全部素数。
#include
main()
{
int m;i;k;n=0;
for(m=101;m