欢迎来到天天文库
浏览记录
ID:51992007
大小:369.64 KB
页数:37页
时间:2020-03-27
《C语言选择结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章选择结构程序设计三种基本结构顺序结构、选择结构、循环结构已经证明,任何程序均可只用这三种结构实现BÖhm,Corrado,andJacopiniGuiseppe."Flowdiagrams,Turingmachinesandlanguageswithonlytwoformationrules."CommunicationofACM,9(5):366-371,May1966.只用这三种结构的程序,叫结构化程序程序“必须”符合结构化规则结构化程序设计的核心思想采用顺序、选择和循环三种基本结构作为程序设计的基本单元只有一个入口;只有一个出口;无死语句,即不存在永远都执行不到的语句
2、;无死循环,即不存在永远都执行不完的循环。采用“自顶向下、逐步求精”和模块化的方法进行结构化程序设计流程图顺序结构选择结构truefalsetruefalse循环结构语句块(Block){}括住的若干条语句构成一个语句块语句块内可以定义变量变量必须在语句块的开头定义变量仅在定义它的语句块内(包括下层语句块)有效同一个语句块内的变量不可同名,不同语句块可以同名(homonym.c)各司其职、下层优先尽量不要在下层语句块内定义变量,也尽量不要定义同名变量语句块可以用在任何可以使用语句的地方,但没有道理要乱加语句块if-else选择结构的一种最常用形式if(表达式)语句块1;else语句
3、块2;语句块3表达式值非0时,执行语句块1,然后语句块3;表达式值为0时,执行语句块2,然后语句块3else部分可以没有。当表达式值为0时,直接执行语句3if-else嵌套使用时,注意else和谁配套的问题if.c表达式!=0?YN语句块1语句块2语句块3if-else语句NS图if语句的基本形式:双选择结构:if(条件)真子句else假子句单选择结构:if(条件)真子句条件真假真子句假子句条件真假真子句if语句的嵌套根据单/双选择结构,有五种嵌套形式:1)if(条件1)2)if(条件1)if(条件2){子句1if(条件2)else子句1子句2}elseelse子句3子句23)if
4、(条件1)4)if(条件1)5)if(条件1)子句1子句1if(条件2)elseif(条件2)elseif(条件2)子句1子句2子句2elseelse子句2子句3elseif(条件3)子句3else子句4提问:为什么1)可以不用括号,而2)必须要有括号?就是多分支选择结构if-else编程举例pp70例4-1例4-2例4-3if.cif-else编程举例从错误中学习分号的位置else的写法语句块未加{}多个条件的表达if.celse-ifif的一种扩展if(表达式1)语句块1;elseif(表达式2)语句块2;elseif(表达式3)语句块3;…………else语句块4;语句块5;
5、else部分可以没有表达式1!=0?YN语句块1语句块2语句块5表达式2!=0?表达式3!=0?语句块3N语句块4NYYelse-if编程举例分段函数的计算switch开关语句switch(表达式){case整型常数1:语句1;case整型常数2:语句2;…………default:语句3;}default可以没有理解“开关”的意思表达式语句1语句2..………..语句n语句n+1out常量表达式1常量表达式2常量表达式ndefaultswitch(表达式){casecons1:语句1casecons2:语句2……casecons3:语句ndefault:语句n+1}输
6、入年(year)、月(month)、日(day),计算从1月1日算起的总天数当闰年,2月份是29天,否则2月份是28天。闰年的判断见p73例4-3。s=day;switch(month-1){case12:s=s+31;case11:s=s+30;case10:s=s+31;case9:s=s+30;case8:s=s+31;case7:s=s+31;case6:s=s+30;case5:s=s+31;case4:s=s+30;case3:s=s+31;case2:if(flag)s=s+29;elses=s+28;case1:s=s+31;}开关语句编程举例其实现在还没有实现多分
7、支的作用switch多路选择switch(表达式){case整型常数1:语句1;case整型常数2:语句2;…………default:语句3;}default可以没有现场编程完成计算器……不要忘记breakswitch和else-if的比较else-if比switch的条件控制更强大一些else-if可以依照各种逻辑运算的结果进行流程控制switch只能进行==判断,并且只能是整数判断(阅读pp例4-4)switch比else-if更清晰两者都要尽量避免用得过多、过
此文档下载收益归作者所有