|
循环语句是C语言中(也是大多数语言中)非常重要的部分,但多数时间的程序执行部分,都集中在循环语句(以及数据处理).在C语言中,循环语句包括三种:for循环;while循环;do-while循环.其中以for循环最为重要,也就是说,for循环在程序开发中用的是最多的(大概70%),所以这里以for循环作为重点,while和do-while会一带而过.
for循环语句的格式如下:
for(初始化部分;运行条件检查部分;条件变量变化部分){
循环体;
}
例如:
...
for(i=1,sum=0;i<=10;i++){
sum+= i;
}
我们都知道,这个是求1-10的和的,那么这个程序是怎么运行的呢,我们看一下它的运行过程:
把程序编好,存盘:
单步执行(f7)执行后,i和sum赋初值:
我们不断运行该程序,注意看Watch窗口的sum和i的变化:
注意,要跳出循环了!!!
整个流程我们可以看成如下过程:
我们看到,红色的线进入,过程:
step1:先初始化
step2:判断是否满足循环条件,满足由绿线进入step3;不满足由黄线跳出循环体step5
step3:执行循环体
step4:改变循变量,go step2
step5:结束循环
我们可以有绿色的剪头看到,如果条件满足,绿色剪头线段就组成了一个"环"---传说中的循环!
再举例一下:
例子2:
for(i=1,t=1; ;i++){
t*=i;
if (t>=200) break;
}/*此循环是break跳出循环,这时候可以把循环判断条件部分省略.我们也可以看出,一个循环中可以有多个出口,即多个退出循环的地方.值得注意的是,必须知道每个地方在什么情况下跳出来:)*/
例子3:
i=1;
sum=0;
for(;i<10;i++){
sum += i*i;
}
看看吧,原来for语句这么灵活,哪里都可以省略,哪里都可以有多个运算,下面有奖竞答,看看下面循环的作用:
for(;;){
}
------------------------
再举例两个,谈谈其他两个循环:
i=0;
sum=0;
while(sum<1000){
sum+=i;
i++;
}
while 循环应用的地方也很多,但是和for语句不同的是,我们经常用for控制循环次数比较明显的地方.while的优势是集中精力与处理条件循环.
i=0;
sum=0;
do{
sum += i*i;
i++;
}while(i<10);
看看下边这两个程序的区别:
i=10;
sum=0;
do{
sum+=i*i;
}while(i<10);
-----
i=10;
sum=0;
while(i<10){
sum+=i*i;
}
这两个程序运行结果有什么不同呢?
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 20:50
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社