第2章第6次课----条件结构和循环结构《C语言与数据结构》只怕有心人世上无难事第2章第6次课----条件结构和循环结构《C语言与数据结构》教学主题条件结构和循环结构教学目标通过本次课的学习,使学生掌握多分支条件结构,循环的基本结构、循环语句、循环控制技术。教学重点1.多分支条件结构的实现2.循环语句的使用教学难点switch语句、break语句教案第2章第6次课----条件结构和循环结构《C语言与数据结构》主要内容多分支条件结构的实现循环结构的类型循环结构的C语言实现第2章第6次课----条件结构和循环结构《C语言与数据结构》本章任务编制一个简单的成绩管理程序,输入班中所有学生的某门课成绩,要求:(1)计算平均成绩;(2)完成百分制和等级制的转换,并统计取得各等级成绩的学生人数。第2章第6次课----条件结构和循环结构《C语言与数据结构》程序的三种基本结构1.顺序结构2.选择结构3.循环结构第2章第6次课----条件结构和循环结构《C语言与数据结构》顺序结构顺序结构:是指程序在运行过程中按照各部分出现的先后次序执行,执行的次序就是语句的顺序,这是基本程序结构。流程图(PAD图表示)第2章第6次课----条件结构和循环结构《C语言与数据结构》条件结构条件结构:也称为分支结构(选择结构),是指在程序的执行过程中,根据不同的条件选择执行不同的分支程序。根据分支的数目可以将条件结构分成单分支、双分支、多分支三种情况。第2章第6次课----条件结构和循环结构《C语言与数据结构》条件结构流程图流程图(PAD图表示)1)单分支2)双分支3)多分支第2章第6次课----条件结构和循环结构《C语言与数据结构》单分支条件结构的C语言实现常见的条件结构可以分成单分支、双分支、多分支三种结构。if(表达式)语句部分(P1)1)单分支流程图C语言实现第2章第6次课----条件结构和循环结构《C语言与数据结构》双分支条件结构的C语言实现if(表达式)语句部分(P1)else语句部分(P2)2)双分支流程图C语言实现第2章第6次课----条件结构和循环结构《C语言与数据结构》多分支条件结构的C语言实现if(表达式1)语句部分(P1)elseif(表达式2)语句部分(P2)…elseif(表达式n)语句部分(Pn)else语句部分(Pn+1)3)多分支流程图C语言实现第2章第6次课----条件结构和循环结构《C语言与数据结构》多分支条件结构举例【问题7】完成学生成绩从百分制到等级制的转换。流程图源程序存在问题:条件数目多,程序繁琐。运行程序(5_7)看源程序(5_7)第2章第6次课----条件结构和循环结构《C语言与数据结构》多分支条件结构的C语言实现2switch(表达式){case常量表达式1:语句组P1;break;case常量表达式2:语句组P2;break;…………case常量表达式n:语句组Pn;break;default:语句组Pn+1;break;}流程图C语言实现2第2章第6次课----条件结构和循环结构《C语言与数据结构》switch语句说明①switch后的表达式,一般为整数表达式或字符表达式。②常量表达式的值必须互不相同。③各个case和default的出现次序不影响执行结果。④switch语句的执行:找表达式的值与常量表达式中相同的分支。⑤执行完一个case后面的语句后,控制转移到下一个case继续执行。可以使用break语句来终止执行。⑥多个case语句可以共用一组语句。第2章第6次课----条件结构和循环结构《C语言与数据结构》用switch语句实现问题7【问题7】完成学生成绩从百分制到等级制的转换。流程图源程序运行程序(5_7_1)看源程序(5_7_1)第2章第6次课----条件结构和循环结构《C语言与数据结构》循环结构类型根据循环条件判断的位置不同,循环结构可以分为:当型循环直到型循环根据循环条件判断的位置不同,循环结构可以分为:当型循环直到型循环第2章第6次课----条件结构和循环结构《C语言与数据结构》当型循环当型循环结构的执行顺序先进行条件判断,如条件为真,则执行循环体,否则循环语句就结束;执行完循环体以后,再进行条件判断,以决定是否继续循环。第2章第6次课----条件结构和循环结构《C语言与数据结构》当型循环的流程图和C语言实现可以用while语句来实现。一般格式如下:while(条件)循环体部分(P)流程图C语言实现循环体第2章第6次课----条件结构和循环结构《C语言与数据结构》while语句说明①循环体如果包含一个以上的语句,应以复合语句形式出现。②在循环体中应有使循环趋于结束的语句。第2章第6次课----条件结构和循环结构《C语言与数据结构》直到型循环当型循环结构的执行顺序先执行循环体,然后再进行条件判断,以决定是否继续进行循环,如果条件为真,则循环结束,否则,继续执行循环体。第2章第6次课----条件结构和循环结构《C语言与数据结构》直到型循环的流程图和C语言实现可以用do~while语句来实现。一般格式如下:do{循环体部分(P)}while(条件);流程图C语言实现循环体当条件为真时继续循环;最后的分号不能少第2章第6次课----条件结构和循环结构《C语言与数据结构》循环的问题有很多。例如以下几个典型的数学计算问题:1、2、3、循环问题51iinii1ijj1niijj11第2章第6次课----条件结构和循环结构《C语言与数据结构》①令i=1,sum=0。②sum=sum+i。③i=i+1。④如果i小于等于5,转②,否则转⑤。⑤输出sum的值。循环结构举例151ii=总共被执行了5次,构成了循环体。控制循环次数。执行循环的条件。【问题1】计算。算法第2章第6次课----条件结构和循环结构《C语言与数据结构》问题1的流程图和源程序untili大于5流程图源程序运行程序(6_1)看源程序(6_1)运行程序(6_1_1)看源程序(6_1_1)第2章第6次课----条件结构和循环结构《C语言与数据结构》当型循环和直到型循环的区别当型循环是先判断条件后执行循环体;直到型循环是先执行循环体后判断条件;所以,直到型循环至少执行一次循环体,而当型循环可能一次都不执行。第2章第6次课----条件结构和循环结构《C语言与数据结构》当型循环的另一种C语言实现可以用for语句实现。for语句是C语言的特色,也是一种“当型循环语句”。其一般格式为:for(表达式1;表达式2;表达式3)语句P;for语句的执行过程:第2章第6次课----条件结构和循环结构《C语言与数据结构》当型循环的另一种C语言实现最简单的应用形式或者说最易理解的形式如下:for(循环变量赋初值;循环条件;循环变量增值)语句P;for语句的执行过程:等价的while语句:循环变量赋初值;while(循环条件){语句P循环变量增值;}第2章第6次课----条件结构和循环结构《C语言与数据结构》用for语句改写问题1流程图源程序运行程序(6_1_2)看源程序(6_1_2)i++第2章第6次课----条件结构和循环结构《C语言与数据结构》for语句说明for语句中的三个表达式都可以省略,但分号不能省略。表达式1和表达式3中可以是与循环变量或控制条件无关的其它表达式。例如:程序6_1_3.c中,可以将sum=0放到表达式1中。运行程序(6_1_3)看源程序(6_1_3)第2章第6次课----条件结构和循环结构《C语言与数据结构》本次课总结多分支条件结构的实现(任务相关部分的实现)循环结构的类型循环结构的C语言实现第2章第6次课----条件结构和循环结构《C语言与数据结构》下课