C语言双重循环应用初探

来源 :商品与质量·建筑与发展 | 被引量 : 0次 | 上传用户:sswang111
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】 循环结构是结构化程序设计中的三大基本控制结构之一,也是程序员学习程序设计师最为难以理解的部分。在C语言中,,除了可以用while和do-while语句实现循环外,C语言还提供了for语句可以实现循环,for语句不仅比以上两种语句实现起来灵活,而且可以用于循环次数确定的情况。总的来说完全可以代替while和do-while.
  【关键词】 多重循环;for循环;循环结构;
  概述:
  循环结构在结构化程序设计中循环结构是最复杂的一种结构,在几乎所有的程序应用中都离不开循环结构。为了在教学中让同学们更好地掌握循环的使用方法,经过探索研究,逼着探索了循环结构的典型应用---几何图形的打印输出。在程序设计的初级阶段,我们在学习中会经常遇见这一类型的题目。对此,我们可以有多种策略予以实现。首先,我们可以简单地采用一条或若干条标准输出函数pruntf来完成,这种设计思路可以完成题目的要求但是过于缺乏灵活性,不符合循环程序设计的本意。按照循环程序的设计思路,我们首先应分析图形的整体构成,找出其中的规律。
  一、for循环语句的应用规则
  C语言中的for循环语句使用非常灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。
  1. for循环语句的格式
  for(表达式1;表达式2;表达式3)语句;
  这里边的“语句”就是循环体语句,若其中只有一条语句,可以不用花括号,若多于一条,则必須用花括号将这些循环体语句括起来。
  2. for循环语句的执行过程
  (1)先操作表达式1;
  (2)操作表达式2,若其值为真(值为非0),则执行for语句中的循环体语句一次,然后执行下面第三步,若为假(值为0),则结束循环,转到第5步;
  (3)操作表达式3;
  (4)转回上面第2步骤继续执行;
  (5)结束循环,执行for语句下面的语句。
  一定要搞清楚这三个表达式的执行次序!且要注意表达式1只执行一次!
  通常,表达式1用来为循环变量赋初值,表达式2用来设置执行循环的条件,表达式3用来改变循环变量的值。所以for语句的格式也可以这样描述:
  for(循环变量赋初值;循环条件;循环变量增值)语句;
  二、 fo与while语句的编程对比
  通过结合例子,如求sum=1+2+3+…+100的和,来分别看一下for和while语句的编程效果。
  首先用for循环语句来编程实现
  main()
  {int i,sum=0;/*定义变量i,sum为基本整型,且为sum赋初值0*/for(i=1;i<=100;i++)sum=sum+i;/*用for语句实现循环,循环体只有一句,可不用花括号*/
  printf(“sum=%d”,sum); /*退出循环后的语句,即输出sum的值*/}
  再用while语句进行编程实现
  main()
  {int i=1,sum=0; /*定义变量i,sum为基本整型,且为它们分别赋初值1和0*/ while(i<=100) /*执行循环体的判断语句*/{sum=sum+i; /*将变量i与其前各项之和累加*/i++; /*循环变量增加1*/} /*循环体多于一个语句时要用花括号括起来*/printf(“sum=%d”,sum); /*退出循环,输出sum的值*/}
  对比以上程序,显然我们发现,用for语句在编程语句上更简单、方便,编程效率更高。而while语句在编程过程中,要书写更多的语句。
  三、 for语句的深入应用
  (1)for语句一般形式中的表达式1可以省略,此时应在for语句之前给循环变量赋初值。注意省略表达式1时,其后的分号不能省略。如for(;i<=100;i++){…};
  (2)表达式2也可以省略,即没有判断循环的条件,此时编译系统将循环条件默认为真,循环将无终止地循环下去,这种情况可以在循环体中设置条件控制循环。
  例如:for(i=1;;i++)sum=sum+i;为死循环语句,若使其实现1+2+3+…+100后结束循环,则可以在循环体中加上控制条件:
  for(i=1;;i++){if(i>100)break;sum=sum+i;}
  (3)表达式3也可以省略,即没有设置用来改变循环变量的语句,循环将无终止地循环执行下去,但此时程序设计者可以在循环体中加上用来改变循环变量的语句。如:
  for(i=1;i<=100;)
  {sum=sum+i;i++;/*循环变量增加1,改变循环变量的值*/}
  另外表达式3不一定都要写成如i++这样的形式,要根据循环变量的实际变化规律而定,如可以写成这样的形式:i=i+2或i=i*3…。
  (4)可以省略表达式1和表达式3,只有表达式2即只给循环条件。此时可以在程序的适当位置对循环变量赋初值和改变循环变量的值。如:
  int i=1,sum=0; /*定义变量i,sum为基本整型,且为它们分别赋初值1和0*/for(;i<=100;)sum=sum+i++; /*改变循环变量的值*/
  (5)三个表达式都可以省略。
  如:for(;;)语句;
  即不设初值,没有判断条件(认为表达式2为真值),循环变量不增值,将无终止的执行循环体。在实际应用中程序设计者可以将这三个内容分写在程序的适当位置。
  如:
  main()
  {int i=1,sum=0; /*定义变量赋初值1和0*/for(;;)
  {if(i>100);{sum=sum+i++;}}/*为循环设置控制条件,改变循环变量的值*/printf(“sum=%d”,sum);}
  (6)表达式1也可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式.且可以有多个,此时用逗号将其分隔开,如:
  for(i=1,sum=0;i<=100;i++);/*可以为多个变量赋初值,用逗号分隔*/
  {sum=sum+i;}
  (7)当循环的次数不确定时,表达式2即控制循环的条件语句,其判断对象就不能是循环变量了。如:
  已知s=1+2+3+…+n,求满足s>=1000的最小n值。
  这个程序的循环执行的条件为“s<1000”,退出循环时n的值不知道是多少,所以循环条件的判断对象应该是s,其程序可以如下编写:
  main()
  { int n,s; /*定义变量赋不赋初值*/ for(n=1,s=0;s<1000;n++) /*用for语句实现循环*/
  s=s+n; /*将变量n与其前各项之和累加*/
  printf(“n=%d”,n-1); /*,输出n的值*/ }
  用while语句可以这样编写:
  main()
  {int n=1,s=0;while(s<1000)s=s+n++;printf(“n=%d”,n-1); }
  四、结语
  上面这个程序循环的次数在编写程序时不能确定,遇到这种情况人们首先想到的是用while语句来实现循环,以为for语句无法实现,其实这是一种误解。在BASIC语言中for循环只能用在循环次数确定的循环当中,而C语言中for语句格式却有其特殊性,而应用更具灵活性。
  参考文献:
  [1]谭浩强.C程序设计(第二版)[M].北京:清华大学出版社,2003.
  [2]谭浩强.C程序设计题解与上机指导(第二版)[M].北京:清华大学出版社,2003.
其他文献
【摘 要】随着当前企业体制的变革,安全管理在石油企业中开始显现出许多薄弱环节,尤其是在石油勘探过程中,重大事故时有发生,给石油企业的安全生产敲响了警钟。所以,石油企业领导者要重视石油企业安全文化的建设,提高企业人员自我防范意识和安全意识,使石油企业的生产能够安全、顺利的进行。  【关键词】石油企业;安全文化;建设;管理  一、石油企业安全文化建设与发展中存在的问题  (一)石油企业领导对安全文化建
期刊
【摘 要】 传统的玉米种植,即是在每个位置上只种植一粒玉米种子,也叫单株种植。它对玉米种植过程中的生长环境具有一定的局限性,例如通风、光照等因素。故此,最终导致了玉米的生产量并不高。如果要打破这种传统玉米种植技术的局限性,就必须改變现有的玉米种植方式,而玉米双株高产种植技术的出现正好解决了这一问题。本文主要研究的是玉米双株高产种植技术。  【关键词】 玉米种植;双株种植技术;高产  1、当前玉米种
期刊
【摘 要】在经历了单位大院,七十到九十年代开放式居住小区,以及目前居民收入水准仍相对多样化的封闭小区以后,所谓的第四代居住形态开始在我国城市中出现。这不仅是指封闭的,而且是专门为一个“特定阶层”设定的居住区。这意味着我国城市空间将会被更为割裂及巴尔干化,不同居民群体之间的隔离将会更趋严重。在冷战后时代的今天,我国的城市和居住区是不是非得照搬美国或欧洲的模式?这是我们必须提出的问题。  【关键词】空
期刊
【摘 要】 随着建筑行业的快速发展,岩土地质成为人们关注的重点,在岩土地质工程建设中,桩基施工起着极其重要的作用。基于此,本文就岩土地质桩基施工进行探索与改进。  【关键词】 岩土地质;桩基施工;改进  一、桩基施工与勘察对工程的意义  (一)桩基施工对工程的意义  桩基是基础的承力柱,起着承受上部重力的作用,是一种古老的基础形式。桩工技术经历了几千年的发展过程,仍旧延续蓬勃之势,桩基工程之所以在
期刊
【摘 要】 由于钳工这个工种的特殊性,目前已经在很多方面被高速发展的机械化加工所取代。但是,对于一些特殊的零件制造钳工是必不可少的,钳工在机械加工制造中仍然有着很重要的作用, 机械的装配是钳工操作的重要内容,是钳工基本操作技能的综合运用,基于此,本文就机械装配中钳工的操作技术进行分析与研究。  【关键词】 机械装配;钳工;操作技能  引言:  机械的装配是钳工的重要内容,是钳工基本操作技能的综合运
期刊
【摘 要】随着我国信息技术水平的不断发展,水工环地质勘测水平也得到了空前的提升,使用的方法逐渐增加,GPS技术、TPK技术、GPR技术在水工环地质勘察中都有自己的长处,都是常见的勘察方法。我国相关部门不断的进行信息技术的升级优化,将现有的水工环的探测技术不断进行提高改进。使用先进的水工环地质勘测技术,能够有效的进行探测任务,对我国的经济建设有很重要的作用。本文主要就是针对水工环地质勘测工作中的技术
期刊
【摘 要】 城市水土保持,是一项复杂而综合的项目。这并不意味着人们对城市不建设、不开发,如果能在科学的条件下,既完成对城市环境的最佳改造,又不至于破坏城市生态,这才是发展的最佳策略。本文主要探究的就是城市水土保持工作存在的问题及对策。  【关键词】 城市水土保持;问题;对策  1、认知城市水土保持重要的意义  城市发展进程中,城市生态是现代化衡量的重要项目,无论城市未来如何发展,发展到何种程度,都
期刊
【摘 要】超高层建筑在国内建设越来越广泛,由于超高层建筑施工的复杂性和特殊性,核心筒内主要由电梯井道和楼梯构成,结合项目特点和实施情况,核心筒内井道众多,尤其对于电梯井道四周剪力墙施工难度大,存在较大安全隐患,重点介绍电梯井道内钢平台的的综合应用情况;全面阐述项目实施中采取的钢平台使用情况,避免井道施工过程安全事故的发生,推进项目的顺利进展,为今后类似超高层建筑项目的施工可提供一定的借鉴和参考。 
期刊
【摘 要】近几年,我国的民用建筑呈现出蓬勃的发展趋势,越来越多民用建筑工程的涌现,工程规模越来越大,加剧了其工程施工管理的难度。为了保证在工程施工过程中的质量目标、进度目标、安全目标、信息管理目标、投资目标的顺利实现,本文就简单的探讨了民用建筑的工程施工管理要点。  【关键词】民用建筑;施工管理;  一、做好编制施工方案前的信息收集整理工作  在投标之前就要对标的进行初步了解,如项目所在地与工程建
期刊
【摘 要】 通信工程建设监理经过多年的发展和实践,现在已经发展成为一个独立的专门行业,并且成为通信工程建设领域三大主体之一,它拥有自己的基础学科、业务对象与业务范围,拥有法律赋予的相应职责和权利,并且将逐渐趋向于符合国际工程项目管理模式,并能逐渐与之接轨的代表业主进行项目管理的独立行业。本文主要就是针对通信建设监理行业存在问题及应对策略来进行分析。  【关键词】 通信建设;监理;问题  1、当前通
期刊