课本129页习题:6.16.56.66.8补充题:某人新开了一个存款帐户,存入1000元,年利率是5%。假定所有利息收入都于满整年时,重新存入帐户,请计算并打印在为期10年的时间里,每一年结束时的账面金额。,4月1日上机3:循环结构程序设计,#includevoidmain(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);},#includevoidmain(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("%d",sum);},#includevoidmain(){inti,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("%d",sum);},#includevoidmain(){inti,sum=0;i=1;loop:if(i<=100){sum=sum+i;i++;gotoloop;}printf("%d",sum);},#includevoidmain(){inti,sum=0;i=1;loop:{sum=sum+i;i++;}if(i<=100)gotoloop;printf("%d",sum);},break;continue;,第六章循环控制,本章主要内容:用while语句实现循环用do…while语句实现循环用for语句实现循环循环的嵌套break语句和continue语句程序举例,1.一般形式:goto语句标号;,6.2goto语句以及用goto语句构造循环,2.说明:1)语句标号定名规则与变量名相同;2)不提倡使用goto语句;,1.形式:while(条件表达式)循环体语句2.作用:实现“当型”循环当条件满足时,执行语句3.特点:先判断表达式,后执行语句,6.3while语句,循环体语句,条件表达式,,,,,,,,,,循环体语句,条件表达式,while语句的图形表达,真,假,,,,,while的后续语句,例0:用while语句实现在屏幕上输出10行“Iloveprogramming!”。,分析:设计变量并赋初值用int型变量i表示行数,初值为1设计循环条件i≤10设计循环体printf(“Iloveprogramming!\n”);i++;用循环语句实现,#includevoidmain(){inti;i=1;while(i<=10){printf(“Iloveprogramming!\n”);i++;}},条件表达式必须加括号,括号后不能有;,循环体包含多条语句时,{}不能少,使用说明:1)在while的循环体中一定要有使循环趋于结束的语句;否则将形成死循环;2)注意循环操作的范围、花括号、分号的使用;3)注意与循环变量赋初值的位置及初值的正确性;,例1:用while语句实现1+2+3++100,分析:设计变量并赋初值1.用int型变量sum存放和,初值为02.用int型变量i表示累加变量,初值为1设计循环体sum=sum+i;i++;设计循环条件i≤100用循环语句实现,程序流程图:,开始,初始化sum=0;i=1;,判断:i<=100?,sum=sum+i;,i=i+1;,输出sum,结束,,,,,,,,,,,,真,假,真,,sum=sum+i;,,i=i+1;,,,判断:i<=100?,,,#includevoidmain(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);},#includevoidmain(){intsum=0,i=1;while(i<=100){sum=sum+i;i++;}printf("sum%d\n",sum);},程序:,i++;sum+=i;,i=0;,100,例2.求1到100之间的奇数之和,偶数之积。,,,,,,,,,,,sum=0mul=1,i<=100,i%2==0,1,0,mul=mul*i,sum=sum+i,输出sum,mul,i++;,i=1,voidmain(){doublemul=1;inti=1,sum=0;while(i<=100){if(i%2==0)mul=mul*i;elsesum=sum+i;i++;}printf("sum=%d\n",sum);printf("mul=%e\n",mul);},voidmain(){inti,k1,k2,k;i=1;k1=1;k2=2;while(i<=5){k=k1+k2;k1=k2;k2=k;i++;printf("%5d",k);}},例3.读程序练习:,3581321,1.形式:do语句while(表达式);2.作用:实现“直到型”循环3.特点:先执行语句,后判断条件,直到条件不满足为止。,6.4do--while语句,循环体语句,条件表达式,,,,,,,,,,循环体语句,条件表达式,do_while语句的图形表达,真,假,voidmain(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("sum=%d",sum);},例1.用do_while语句实现1+2+3++100,i++;sum+=i;,i=0;,100,while循环与do_while循环小结:1.循环体内必须有使循环趋于终止的条件,while(i<=100){sum=sum+i;i++;},do{sum=sum+i;i++;}while(i<=100);,2.注意循环初值与循环条件,i=1;while(i<=100){sum=sum+i;i++;},i=0;while(i<100){i++;sum=sum+i;},3.do_while循环的循环体至少执行一次,while循环的循环体可能一次也不执行。,,4.在循环体至少执行一次的前提下,do_while与while循环等价。,例3:求n!,voidmain(){inti=1,n;doublem=1;scanf("%d",},voidmain(){inti=1,n;doublem=1;scanf("%d",},1.一般形式:for(表达式1;表达式2;表达式3)语句,for的循环体,括号不可少,分号不可少,,,,6.5for语句,,,求表达式1,判表达式2,语句,求表达式3,,,,,,,,,,,,,for语句的下一个语句,真,非0,假,值为0,for语句执行过程示意,for(表达式1;表达式2;表达式3)语句,表达式1只执行1次;表达式3和内嵌语句执行多次,通常:表达式1用于对循环控制变量赋初值表达式2给出循环控制条件;表达式3使循环控制变量增值;,循环类型:当型,,例:#includevoidmain(){inti,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf(“sum=%d\n”,sum);},例:for(i=0;i<=10;i=i+2)printf(“%3d”,i);printf(“\ni=%d”,i);运行结果:0246810i=12例:for(i=10;i;i--)printf(“%d,”,i);运行结果:10,9,8,7,6,5,4,3,2,1,,例:for(i=1,j=6;i=1e-6){pi=pi+t;n=n+2;s=-s;t=s*1.0/n;}printf("pi=%10.6f\n",4*pi);},,程序:,例2.求Fibonacci数列:1,1,2,3,5,8,......的前40个数。,f1f211,,,,,,f1=f1+f2;f2=f2+f1;,fi=fi-1+fi-2,f1,2,,,f2,,3,......,......,voidmain(){longintf1,f2;inti;f1=1;f2=1;for(i=1;i=’A’},例4:从键盘输入字符直到输入字符#为止,并统计输入字母的个数。方法2:#includevoidmain(){charch;intcount=0;while(1){ch=getchar();if(ch>=’A’},例5:在屏幕上输出以下图形。,*************************,分析:(设N=5)第1行:4个空格1个“*”换行符第2行:3个空格3个“*”换行符第3行:2个空格5个“*”换行符第4行:1个空格7个“*”换行符第5行:0个空格9个“*”换行符,由此归纳出:第i行的空格数5-i个;第i行的“*”数是2i-1个。,voidmain(){inti,j;for(i=1;i<=5;i++){for(j=1;j<=5-i;j++)printf("");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}},本章小结,本章介绍的内容介绍了while、do…while、for三种循环结构的使用和它们之间的区别,以及break、continue的用法要求达到的目标掌握while、do…while、for语句的用法会使用这三种结构进行循环程序设计理解break和continue在程序控制中的作用,课本129页习题:6.16.56.66.8补充题:某人新开了一个存款帐户,存入1000元,年利率是5%。假定所有利息收入都于满整年时,重新存入帐户,请计算并打印在为期10年的时间里,每一年结束时的账面金额。,作业:,
展开阅读全文