1、C语言程序设计教程2022/11/16第四章流程控制1.whilewhile循环循环 授课教师:杨莉授课教师:杨莉20072007年年1010月月3030日日C语言程序设计教程2022/11/16第四章流程控制2v一般形式:一般形式:while(while(表达式表达式)需要执行需要执行循环循环的的语句;语句;While While 是是“当当”的意思的意思C语言程序设计教程2022/11/16第四章流程控制3v执行过程:执行过程:1 1)先判断表达式是否为真;先判断表达式是否为真;2 2)若表达式为真,执行语句,直到表达式若表达式为真,执行语句,直到表达式 为假;为假;3 3)若表达式为假,
2、则跳出循环。若表达式为假,则跳出循环。C语言程序设计教程2022/11/16第四章流程控制4v执行流程执行流程:假(假(0 0)真(非真(非0 0)表达式表达式 语句语句 whileC语言程序设计教程2022/11/16第四章流程控制5例:假设有一个爱哭的小娃娃,有一天她要求父母给买一条小红裙,可惜父母不同意,于是她就开始一个循环:while(父母不给买小红裙)我哭;C语言程序设计教程2022/11/16第四章流程控制6首先,一个合适的判断是否继续的条件相当重要。一个合适的判断是否继续的条件相当重要。要想继续哭,条件有两个:“父母不给买小红裙父母不给买小红裙”并且“我还没有哭累我还没有哭累”。
3、while(父母不给买小红裙&我还没有哭累)我哭;C语言程序设计教程2022/11/16第四章流程控制7其次,大多数情况下,条件需要被恰当地改变条件需要被恰当地改变。1)得在哭的间隙观察大人是否同意买裙。while(父母不给买小红裙&疲劳度 200)我哭;我偷看爸妈是否同意买裙;疲劳度+;2)假设小女孩有一个疲劳度,每哭一次疲劳度加1,当疲劳度到达200时,可怜的小女孩累了 C语言程序设计教程2022/11/16第四章流程控制8v特点:特点:先判断表达式,后执行循环体v说明:说明:、循环体有可能一次也不执行、循环体可为任意类型语句、下列情况,退出while循环:条件表达式不成立(为零)循环体内
4、遇break,return,goto 、无限循环无限循环:while(1)循环体;whilewhile循环特点:循环特点:C语言程序设计教程2022/11/16第四章流程控制9v与与if语句比较:语句比较:if(if(条件条件)条件成立时执行的条件成立时执行的语句语句;两者格式基本相同,条件成立时,两者格式基本相同,条件成立时,ifif语句仅执行一次,语句仅执行一次,而而whilewhile语句则将反复执行,直到条件不成立为止。语句则将反复执行,直到条件不成立为止。C语言程序设计教程2022/11/16第四章流程控制10例:例:用用 while while 语句实现求从语句实现求从1 1到到1
5、00100的累加和。的累加和。sum=1+2+3+.100sum=1+2+3+.100分析:分析:1)sum=(1+100)1)sum=(1+100)*50 50 2)2)定义变量定义变量i i,i=1,i=2i=1,i=2i=100i=100 3)sum=sum+i 3)sum=sum+i思考:画出该题的流程图思考:画出该题的流程图C语言程序设计教程2022/11/16第四章流程控制11v流程图:流程图:定义变量定义变量i,sum赋初值赋初值(while)i=100sum=sum+ii+输出输出sum(总和)(总和)YNC语言程序设计教程2022/11/16第四章流程控制12include
6、main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%d,sum);循环终值循环终值循环变量增值循环变量增值循环条件循环条件循环体循环体v源程序:源程序:循环初值循环初值C语言程序设计教程2022/11/16第四章流程控制13练习:练习:思考、编程计算、编程计算110的平方和的平方和#include 文件包含文件包含main()int i=1,sum=0;循环初值循环初值主函数主函数while()循环条件循环条件循环变量增值循环变量增值将将i的平方累加到的平方累加到sum中中printf(“sum=%d”,sum);执行过程执行过程i s
7、um1 0+1*1=12 1+2*2=53 5+3*3=144 14+4*4=305 30+5*5=556 55+6*6=917 91+7*7=1408 140+8*8=2049 204+9*9=28510 285+10*10=38511运行结果:运行结果:sum=385sum+=i*i;i+;i=10C语言程序设计教程2022/11/16第四章流程控制14、程序阅读、程序阅读main()float score,sum=0;int i=1,count=0;while(i=50)printf(“input a score:n”);scanf(%f,&score);sum+=score;if(score60)count+;i+;printf(“sum=%10.2f,count=%dn,sum,count);思考C语言程序设计教程2022/11/16第四章流程控制151)while语句先判断后执行循环语句。2)while语句中的语句部分若为简单句可不用。3)while语句的循环体中应有趋于结束的条件。4)对于while循环而言,若表达式不成立语句部分一次也不被执行。v小结:小结:C语言程序设计教程2022/11/16第四章流程控制16作业:作业:编写程序计算下列算式的值:直到某一项A=0.000001时为止。输出最后值。