欢迎来到天天文库
浏览记录
ID:59421503
大小:941.00 KB
页数:53页
时间:2020-09-19
《C语言程序设计教程(第4版)_第5章_循环结构ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计教程(第4版)第5章循环结构李丽娟2013年2月第5章循环结构本章主要内容1.for循环语句结构2.while循环语句结构3.do-while循环结构4.break和continue语句的作用5.循环结构的嵌套6.案例分析第5章循环结构循环就是重复地执行某些语句。程序中的循环次数是有限的,由循环条件决定可以确定循环次数。C语言提供了3种循环结构语句:①for语句②while语句③do_while语句5.1for语句for语句是一种计数循环。循环次数由循环变量来控制。for语句的一般形式为:for(<初始表达式>;<条件表达式>;<循环表达式>){<循环体语句>}fo
2、r语句的3个重要的组成部分:1.初始表达式——初始化循环控制变量。2.条件表达式——测试循环条件。3.循环表达式——更新循环控制变量的值。5.1for语句for语句的语法功能:1.计算<初始表达式>的值。该表达式是对循环控制变量进行初始化。2.判断<条件表达式>的值。该表达式就是循环条件,若该表达式的值为“真”,则执行<循环体语句>;若该表达式的值为“假”,则退出循环,执行循环结构外的语句。3.计算<循环表达式>的值。该表达式更新循环控制变量的值。4.转第2步。for(<初始表达式>;<条件表达式>;<循环表达式>){<循环体语句>}5.1for语句for语句的流程图:注意:①若<循环
3、体语句>中有多条语句,则构成复合语句,被包含在一对花括号中。②若<循环体语句>只有一条,可以不使用花括号。5.1for语句例1:编写程序,求几何级数之和:分析:该数学表达式为1+2+3+…+100。设:sum为级数的和(初值为零);i为循环变量;将i从1按步长为1增加到100,循环计算:sum=sum+i;求得该级数的和。程序:example5_1.c5.1for语句for语句所具有的特性。1.<初始表达式>可以省略,但须保留分号(;),同时在for之前必须给循环控制变量赋值,形式为:<初始表达式>;for(;<条件表达式>;<循环表达式>)<循环体语句>2.<条件表达式>一般不可省略,否
4、则为无限循环。例如:for(i=1;;i++)sum=sum+i;相当于条件总为真,程序会一直不停地执行直到“数据溢出”。5.1for语句3.<循环表达式>亦可省略,但在循环语句体中必须有语句来修改循环变量,以使条件表达式的值在某一时刻为假,使程序能正常结束循环。例如:for(sum=0,i=1;i<=100;){sum=sum+i;i++;}4.3个表达式均省略,即for(;;),为无限循环,程序中要避免这种情况的发生。5.1for语句5.条件表达式可以是关系表达式、数值表达式。只要表达式的值不等于零,就执行循环体语句。如:for(i=0;(c=getchar())!='';i+=c)
5、;6.初始表达式、循环表达式可以是逗号表达式,用来完成逗号表达式中各表达式的功能。例如:for(sum=0,i=1;i<=100;i++,i++)相当于:sum=0;for(i=1;i<=100;i=i+2)7.for循环也可以嵌套,执行时是先执行最里层的循环,再执行其外一层的循环。5.1for语句例2:编写程序,从键盘输入两个不等于零的正整数a、b(a<b),求它们之间的几何级数的和,数学表达式为:分析:①所求级数和的初值和终值由键盘任意输入;②题目要求初值a<b,并且a>0,b>0;③如果a>b,或者输入的值为负数,则程序提示输入错误,不进行任何计算,直接退出程序。5.1for语句程序
6、流程图:程序:example5_2.c思考:①该算法的缺点;②设计更好的算法。③假如输入的数可以为任意整数,如果a≤b,计算;如果a>b,则计算。请设计算法并编写程序验证。5.1for语句#include//例5.2源程序main(){inta,b,i,sum=0;printf("pleaseinputthevalueofa&b:");scanf("%d%d",&a,&b);if(a>0&&a7、1for语句#include//例5.2修改后的程序main(){inta,b,i,sum=0;printf("pleaseinputthevalueofa&b:");scanf("%d%d",&a,&b);if(a<=b){for(i=a;i<=b;i++)sum+=I;printf("%d+%d+...+%d=%d",a,a+1,b,sum);}else{for(i=b;i<=a;i
7、1for语句#include//例5.2修改后的程序main(){inta,b,i,sum=0;printf("pleaseinputthevalueofa&b:");scanf("%d%d",&a,&b);if(a<=b){for(i=a;i<=b;i++)sum+=I;printf("%d+%d+...+%d=%d",a,a+1,b,sum);}else{for(i=b;i<=a;i
此文档下载收益归作者所有