6选择结构程序设计

上传人:aa****6 文档编号:51466036 上传时间:2018-08-14 格式:PPT 页数:33 大小:332KB
返回 下载 相关 举报
6选择结构程序设计_第1页
第1页 / 共33页
6选择结构程序设计_第2页
第2页 / 共33页
6选择结构程序设计_第3页
第3页 / 共33页
6选择结构程序设计_第4页
第4页 / 共33页
6选择结构程序设计_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《6选择结构程序设计》由会员分享,可在线阅读,更多相关《6选择结构程序设计(33页珍藏版)》请在金锄头文库上搜索。

1、第6章 选择结构程序设计 选择结构的N-S流程图如图6.1所示。图6.1 选择结构的N-S流程图P为选择的条件,对于执行A还是B要根 据条件P的判断结果来决定,如果条件P的结 果为真则执行A,如果条件P的结果为假则执 行B。这里条件P的结果就成为执行A还是B 的关键所在。P是一个判断的条件,其结果 为真或者假,将其称为“逻辑量”。C语言中 没有提供逻辑型变量,可以使用整型数据去 描述1表示真,0表示假。在C语言中任意确 定的值都可作为逻辑量处理,当作为逻辑量 处理时,如果该值为非0,则表示真(1), 如果该值为0,则表示假(0)。下面讲述条 件P的逻辑量表示方法。6.1 逻辑量的表示方法6.2

2、 if语句6.3 switch语句6.4 选择结构程序设计举例6.1 逻辑量的表示方法C语言中逻辑量是用整型数据来表示 的,用来表示真或成立,用来表示假 或不成立。逻辑量的表示是非常灵活的, 具体表示方法有以下几种方式。6.1.1 关系表达式1关系运算符关系运算是一种比较运算符两侧运算对象大 小的运算,完成两个运算对象比较,运算结果为 成立与不成立,用1和0表示。关系运算符有以下6种:,=,b,3+7!=10,aa a+(b=a+) 都是合法的C语言关系表达式。关系表达式的求解遵循表达式求解规则,关 系运算的结果只有两种可能,要么关系成立为真 (1),要么关系不成立为假(0)。例如有整型变量a

3、,b,且a3,b5, 求解表达式:aba算术运算符“”的优先级高于关系运算符 “”,因此先计算ab的值为8,之后运算8a ,而a参加运算时需转换为整型数97运算,实 际运算的是897,判断后其结果为不成立,表 达式的运算结果为0。若有关系表达式0n)else printf(The max is %dn,n); 图6.7 例6.2的流程图使用if语句要注意以下几点。 (1)if语句是一条语句。 (2)逻辑量是if语句选择判断的条件,C语言中任 意确定的值都可以作为逻辑量处理。 (3)逻辑量为1和为0的分支都只能是单条语句, 如果要执行多个操作的话,应该将多个操作复合为 单条语句才能出现在if的分

4、支结构中。 (4)分支中出现的语句1是复合语句的时候,后 不应该有“;”。 (5)语句中语句1是条件语句中必不可少的部分。 (6)正确理解if语句和N-S选择结构流程图的对应 关系。嵌套主要用于处理多条件的题目。设计 嵌套选择结构时,应清晰描述各条件之间的 约束关系。嵌套的if语句可以简单描述如下:嵌入的if语句是在当外围的if语句的条件 p1的逻辑量值为1时才可以执行,即其作为外 围if语句的条件成立时的执行语句,嵌入在外 围if内。当然语句1、语句2、语句3也可以是 if语句,具体的嵌套形式和具体题目中的多条 件是密切相关的, if语句的嵌套形式应建立 在对具体问题的分析上。6.2.2 i

5、f语句的嵌套及多条件结构的实现例6.4 求函数中x为任意值时y 的值。由于if选择结构仅有两个分支,而此分段 函数x的定义域为三分支,因此当确定x的关 系表达式时,其中必然有一个分支包含另外 两部分定义域,需在此基础上作进一步的条 件判断。 根据流程图得到如下程序: main() main() float x,y; float x,y;scanf(%f, scanf(%f,if(x0) y=1/x; if(x0) y=1/x;else if(x=0) y=0; else if(xb)?a:b 的 求解过程如下:此表达式右边为一条件表达式, 由于条件运算符的优先级高于赋值运算符,应先 计算条件表

6、达式的值,再通过赋值运算符把得到 的值赋给max。在条件表达式中,首先计算表达 式ab的逻辑量值,根据题意,ab表达式的逻辑 量值为1,则a为条件表达式的结果,为5,那么条 件表达式的值为5,可得max的值为5。6.3 switch语句如果题目中的多条件是有规律的,则可以采用switch语句 来实现。switch语句称为分支语句,又称为开关语句。 switch的具体形式如下: switch(表达式) case 整型常量表达式1:语句组1 breakcase 整型常量表达式2:语句组2 breakcase 整型常量表达式n:语句组n breakdefault :语句组n+1switch,case

7、,default和break都是构成多分支语句的关 键字。 表示break可有可无。其中表达式是任意类型的表达式,但运算 结果会自动转换为整型。整型常量表达式只 能由整型常量构成。break语句的作用是结束 switch语句,执行switch的后续语句。语句组 可以是单条语句,也可以是多条语句,多条 语句无需用复合语句去表示。而在ifelse结 构中的语句1和语句2只能是单条语句。switch语句中的一对花括号是必须书写 的,是switch语句构成的必要部分。switch语句的具体执行过程为:根据switch表 达式的值,寻找switch语句的执行入口。自上而下 和case后的整型常量表达式的

8、值进行比较,如果 相等则执行其后的语句组,假定入口是整型常量 表达式2,那么该语句执行语句组2,当语句组2执 行完毕后,若有break语句,则中断switch语句的 执行,否则继续执行语句组3;如果没有和表达式 的值相匹配的整型常量表达式,则执行default后 的语句组。case后的整型常量表达式的值实际上就是 switch后括号内的表达式的各种可能的取值。如果 能穷尽表达式各种可能的取值,则语句中可省去 default分支;否则最好不要省略default,因为 default表示的是switch语句在没有找到匹配入口时 的语句执行入口。例6.6 输入一同学的成绩,判断其成绩等级。等级范围为

9、:90 以上 等级为A 8980 等级为B7970 等级为C6960 等级为D60 以下 等级为E假定成绩为score,可以得到表达式(int)(score/10)。当表 达式的值为10和9时,对应于90分以上的条件分支,为8时对应 于8980分段的条件分支,以下的取值和对应的分支可以依次 类推。60分以下可用switch中default分支来描述。程序如下: main() float score;scanf(%f,switch(score/10) case 10: case 9 : printf(Your score is An); break;case 8 : printf(Your sc

10、ore is Bn); break;case 7 : printf(Your score is Cn); break;case 6 : printf(Your score is Dn); break;default : printf(Your score is En); score/10中score得到的结果为浮点型, 系统会自动转换为整型。常量表达式为10 的分支,由于与9的分支均为A级,利用 switch的特点可以不写值为10的分支对应的 语句。使用switch语句应注意以下几点。(1)switch 语句中表达式可为任意类型,但运算结 果为整型。case后的表达式必须是整型常量表达式。(2

11、)每个case后的常量表达式的值不能相同,否则 会自相矛盾,无法判断。(3)case及default的顺序对运行结果不产生影响。(4)若无break语句进行switch语句的强制跳出,则 从该处顺序执行其余语句,直至跳出或执行结束。(5)case和其后的整型常量表达式中间应有空格 6.4 选择结构程序设计举例例6.10 批发钢材,每吨批发金额为1000元,计算批发金 额,批发折扣如表6-3所示。 表6-3 例6.10折扣表 表6-4 例6.10折扣规律表1批发量(吨 )折扣金额( %)批发量(吨 )t/50相除结 果(取整) 500 5001005 10012508 2502、3、450010

12、 5005、6、7、8 、9 50015 500其他main() float t,d,m;scanf(“%f“,elseif(t100)d=5./100;elseif(t250)d=8./100;elseif(t500)d=10./100;elsed=15./100m=t*1000*(1-d);printf(%.0fx9dn,m); /*x9d是字符¥的ASCII码*/ main() float t,d,m;scanf(%f,switch(t/50)case 0: d=0; break;case 1: d=0.01; break;case 2: case 3:case 4: d=0.08; break;case 5:case 6:case 7:case 8:case 9: d=0.1; break;default : d=0.15; m=t*1000*(1-d);printf(%.0fx9d n,m);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号