欢迎来到天天文库
浏览记录
ID:55652166
大小:1.95 MB
页数:151页
时间:2020-05-22
《C语言程序设计 第4章循环结构.pptx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章循环结构C语言程序设计循环结构是在一定条件下反复执行某段程序的流程结构。在C语言中,有三种类型的循环语句:while语句、do…while语句和for语句。4.1while语句1.while语句(1)while语句的一般形式如下:while(表达式)循环语句;注意:①while后的表达式通常为关系表达式或逻辑表达式,当表达式的值为0时,表示条件为假;非0时,表示条件为真。②循环体若是复合语句,需用“{}”括起来。③如果第一次计算时表达式的值就为0,则循环语句一次也不被执行,流程直接跳过while语句,执行下一条语句。4.1while语
2、句④在循环体中应有使循环趋向于结束的语句。(2)执行过程:计算while后表达式的值,当值为非0时,执行循环体中的语句并重新计算表达式的值;当值为0时,退出while循环。(如图4-1-1所示)4.1while语句注意:进入while循环后,一定要有能使此表达式的值变为0的操作,或者有能在某种情况下强行终止循环的语句(如break语句);否则,循环将会无休止地进行下去,即进入死循环。在程序设计中,是不允许死循环出现的。①while语句的表达式可以是任何类型,只要表达式的值为真就可继续循环。例如:intx=0,n=2;while(n--)pr
3、intf(″%d\n″,x++*2);上述语段将执行2次循环,每执行一次,n值减1,循环体输出表达式x++*2的值。4.1while语句②应该注意条件的选择以避免死循环。例如:inta=5,n=0;while(a=5)printf(″%d\n″,n++);上例中,while语句的循环条件为赋值表达式a=5,因此该表达式的值永远为真,而循环体中又没有其他的终止循环的语句而形成死循环。③如果while(表达式)后加了分号“;”,则循环体为空。4.1while语句2.while语句实例【例4.1.1】用while语句计算1+2+3+…+100。算
4、法:步骤一:先赋变量sum初始值为0,i初始值为1。步骤二:当i小于等于100时,重复执行步骤三和四,否则执行步骤五。步骤三:sum+i后赋给sum。步骤四:i+1后赋给i,转回步骤二继续执行。步骤五:输出sum的值。流程图如图4-1-2所示。4.1while语句4.1while语句程序运行结果:sum=50504.1while语句【分析】变量sum的初始值为0,i的初始值为1,计算while后表达式的值1<=100为真,执行循环体中的语句sum+=i相当于sum=sum+i,i++相当于i=i+1后,此时sum的值为1,i的值为2,并重新
5、计算while(i<=100)表达式的值,若为真继续执行循环体,为假则退出循环体,从而继续执行输出sum的值。在循环体中若没有改变循环变量的值,导致循环条件永远为真,程序会出现死循环。4.1while语句【例4.1.2】求s=1+12+13+14+15+…+110。算法:步骤一:先赋变量s初始值为0,i初始值为1。步骤二:当i小于等于10时,重复执行步骤三和四,否则执行步骤五。步骤三:s+1/i后赋给s。步骤四:i+1后赋给i,转回步骤二继续执行。步骤五:输出s的值。流程图如图4-1-3所示。4.1while语句4.1while语句程序运行
6、结果:s=2.9289684.1while语句【分析】变量s的初始值为0,i的初始值为1,计算while后表达式的值i<=10为真,执行循环体中的语句s=s+(float)1/i,i++相当于i=i+1后,此时s的值为1.0,i的值为2,并重新计算while(i<=10)表达式的值,若为真继续执行循环体,为假则退出循环体,从而继续执行输出s的值。在C语言中,构造s的表达式时,由于i为整型,则表达式1/i的值为整型,当i的值为2时,则表达式1/i的值为0,故采用(float)1/i,强制转换为float型后再进行计算,当i的值为2时,则表达式
7、(float)1/i的值为0.5。将语句“s=s+(float)1/i;”改为“s=s+1.0/i;”也可。4.1while语句【例4.1.3】求s=1+3+5+7+9+…,其和大于等于500的最大项。算法:步骤一:先赋变量s初始值为0,i初始值为1。步骤二:当s小于等于500时,重复执行步骤三和四,否则执行步骤五。步骤三:s+i后赋给s。步骤四:i+2后赋给i,转回步骤二继续执行。步骤五:输出i-2的值。流程图如图4-1-4所示。4.1while语句4.1while语句程序运行结果:i=454.1while语句【分析】变量s的初始值为0,
8、i的初始值为1,计算while后表达式的值0<=500为真,执行循环体中的语句s=s+i,i=i+2,此时s的值为1,i的值为3,并重新计算while(s<=500)表达式的值,
此文档下载收益归作者所有