goodsoso的个人博客分享 http://blog.sciencenet.cn/u/goodsoso

博文

C语言中的循环语句

已有 1023 次阅读 2019-5-17 09:38 |系统分类:科研笔记

循环语句是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;
}
这两个程序运行结果有什么不同呢?



http://wap.sciencenet.cn/blog-645848-1179539.html

上一篇:想当年

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-2-25 05:03

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部