打印
[C语言]

循环语句

[复制链接]
794|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
for(;;)语句;
这是一个死循环,一般用条件表达式加break语句在循环体内适当位置,一旦条件满足时,
用break语句跳出for循环。
例如,在编制菜单控制程序时,可以如下:
for(;;)
{
printf("please input choice(Q=Exit):");显/*示菜单语句块:*/
scanf("%c",&ch);
if(ch=='Q')or(ch=='q')break;语/*句段*/
}
b.for(;表达式2;表达式3)
使用条件是:循环控制变量的初值不是已知常量,而是在前面通过计算得到,例如:
i=m-n;
⋯⋯
for(;i<k;i++)语句;
c.for(表达式1;表达式2;)语句
一般当循环控制变量非规则变化,而且循环体中有更新控制变量的语句时使用。
例如:
for(i=1;i<=100;)
{
⋯⋯
i=i*2+1;
⋯⋯
}
d.for(i=1,j=n;i<j;i++,j--)语句;
在for语句中,表达式1、表达式3都可以有一项或多项,如本例中,表达式1同时为i和j赋
初值,表达式3同时改变i和j的值。当有不止一项时,各项之间用逗号“,”分隔。
另外,C语言还允许在循环体内改变循环变量的值,这在某些程序的设计中是很有用的。
到此,我们已经学习了C语言中三种循环控制语句while、do...while和for语句,下面再讨论两个问题:
三种语句的选用
同一个问题,往往既可以用while语句解决,也可以用do...while或者for语句来解决,但在
实际应用中,应根据具体情况来选用不同的循环语句,选用的一般原则是:
1)如果循环次数在执行循环体之前就已确定,一般用for语句;如果循环次数是由循环体
的执行情况确定的,一般用while语句或者do...while语句。
2)当循环体至少执行一次时,用do...while语句,反之,如果循环体可能一次也不执行,
选用while语句。
循环的嵌套
一个循环的循环体中有另一个循环叫循环嵌套。这种嵌套过程可以有很多重。一个循环
外面仅包围一层循环叫二重循环;一个循环外面包围两层循环叫三重循环;一个循环外面包
围多层循环叫多重循环。
三种循环语句for、while、do...while可以互相嵌套自由组合。但要注意的是,各循环必须
完整,相互之间绝不允许交叉。如下面这种形式是不允许的:
do
{
for(;;)
{
......
}while();
}
[例3-15]打印8行7列的星形矩阵。
程序如下:

#include<stdio.h>
main()
{
inti,j;
for(i=0;i<8,i++)/*控制行*/
{
for(j=0;j<7>;j++)/*控制列*/
printf("*");
printf("\n");/*换行*/
}
}
打印结果如下:
RUN
*******
*******
*******
*******
*******
*******
*******
*******
将程序中for(j=0;j<7;j++)改为for(j=0;j<i;j++),用行数来控制每行星号的多少,就可以
打印三角形。
3.4.4break与continue语句
有时,我们需要在循环体中提前跳出循环,或者在满足某种条件下,不执行循环中剩下
的语句而立即从头开始新的一轮循环,这时就要用到break和continue语句。
1.break语句
在前面学习switch语句时,我们已经接触到break语句,在case子句执行完后,通过break
语句使控制立即跳出switch结构。在循环语句中,break语句的作用是在循环体中测试到应立
即结束循环时,使控制立即跳出循环结构,转而执行循环语句后的语句。
[例3-16]打印半径为1到10的圆的面积,若面积超过100,则不予打印。
#include<stdio.h>
main()
{
intr;
float area;
for(r=1;r<=10;r++)
{
area=3.141593*r*r;
if(area>100.0)
break;
printf("square=%f\n",area);
}
printf("nowr=%d\n",r);
}运行程序:
RUN
square=3.141593
square=12.566373
square=28.274338
square=50.265488
square=78.539825
nowr=6
当break处于嵌套结构中时,它将只跳出最内层结构,而对外层结构无影响。

相关帖子

沙发
风度翩翩小白龙|  楼主 | 2014-12-26 16:47 | 只看该作者
自动132涂存斌1306163228

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝