项目3选择结构程序设计——让计算机_第1页
项目3选择结构程序设计——让计算机_第2页
项目3选择结构程序设计——让计算机_第3页
项目3选择结构程序设计——让计算机_第4页
项目3选择结构程序设计——让计算机_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、项目项目3 选择结构程序设计选择结构程序设计让计算让计算机有智能判断力机有智能判断力Page 2项目项目3 选择结构程序设计选择结构程序设计让计算机有智能判断力让计算机有智能判断力【知识目标知识目标】l了解选择结构程序的概念。了解选择结构程序的概念。l掌握三种形式的掌握三种形式的if语句和语句和switch语句的格式及语句的格式及功能。功能。l掌握关系运算符与关系表达式、逻辑运算符掌握关系运算符与关系表达式、逻辑运算符与逻辑表达式、条件运算符与条件表达式的使与逻辑表达式、条件运算符与条件表达式的使用方法。用方法。Page 3项目项目3 选择结构程序设计选择结构程序设计让计算机有智能判断力让计算

2、机有智能判断力【能力目标能力目标】l理解各个任务中的实例程序。理解各个任务中的实例程序。l会正确地选用会正确地选用if语句或语句或switch语句去解决遇到语句去解决遇到的实际问题。的实际问题。l能灵活地使用各种表达式去设置条件,具有能灵活地使用各种表达式去设置条件,具有编写简单选择结构程序的能力。编写简单选择结构程序的能力。Page 4任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪任务提出任务提出通过分析智能体重测量仪程序,逐步掌握双分支通过分析智能体重测量仪程序,逐步掌握双分支if语句的基本格式及执行流程,学会使用关系表语句的基本格式及执行流程,学会使用关系表

3、达式正确地表示达式正确地表示if语句中的条件。理解任务给出语句中的条件。理解任务给出的相关实例程序,能做到举一反三,触类旁通。的相关实例程序,能做到举一反三,触类旁通。Page 5任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪工作任务工作任务编写一个智能体重测量仪程序:要求从键盘输入编写一个智能体重测量仪程序:要求从键盘输入身高和体重后,能够计算出体重指数。体重指数身高和体重后,能够计算出体重指数。体重指数=体重体重(kg)/(身高身高)*2,并要求实现这样的判断:,并要求实现这样的判断:如果体重指数如果体重指数25,属于正常;否则属于过胖。,属于正常;否则属于过

4、胖。Page 6任务分析任务分析本项任务是一个典型的双分支选择事件,可以先通本项任务是一个典型的双分支选择事件,可以先通过输入输出函数接受身高与体重的输入及提示文字过输入输出函数接受身高与体重的输入及提示文字的显示,然后按照公式计算出体重指数,最后用的显示,然后按照公式计算出体重指数,最后用if语语句实现条件的判断与两种结果的处理。句实现条件的判断与两种结果的处理。变量:身高、体重、体重指数。变量:身高、体重、体重指数。体重指数计算公式:体重指数体重指数计算公式:体重指数=体重体重(kg)/(身高身高)*2。算法实现:用算法实现:用if语句给出条件,判断体重指数是否小语句给出条件,判断体重指数

5、是否小于于25,如果条件成立显示正常,否则显示过胖。,如果条件成立显示正常,否则显示过胖。变量定义:变量定义:float weight,height,index;分别代表体重、分别代表体重、身高、体重指数。身高、体重指数。任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪Page 7任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪任务实现任务实现智能体重测量仪程序具体代码如下所示。智能体重测量仪程序具体代码如下所示。#include void main() float weight,height,index; printf(n 请输入你的体

6、重请输入你的体重(千克千克):); scanf(%f,&weight); /*输入体重输入体重*/ printf(n 请输入你的身高请输入你的身高(米米):); scanf(%f,&height); /*输入身高输入身高*/ index=weight/(height*height); /*计算体重指数计算体重指数*/Page 8任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪任务实现任务实现智能体重测量仪程序具体代码如下所示。智能体重测量仪程序具体代码如下所示。printf(n The index of your weight is: %f, ind

7、ex); if(index25) /*if条件判断条件判断*/ printf(n You are right!);/*分支一分支一*/ else printf (n You are fat!); /*分支二分支二*/Page 9任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪任务实现任务实现程序运行后如图程序运行后如图3-1所示。所示。图图3-1 智能体重测量仪程序运行结果智能体重测量仪程序运行结果Page 10任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪归纳总结归纳总结选择结构又称为分支结构或者选取结构,其执选择结构又称为分支结构或

8、者选取结构,其执行过程是依据一定的条件选择执行路径,而不行过程是依据一定的条件选择执行路径,而不是严格按照语句出现的先后顺序执行的。所谓是严格按照语句出现的先后顺序执行的。所谓分支结构,是指程序在运行过程中根据条件有分支结构,是指程序在运行过程中根据条件有选择性地执行一些语句,故又称为选择结构。选择性地执行一些语句,故又称为选择结构。选择结构属于程序的三种基本结构之一。选择结构属于程序的三种基本结构之一。C语语言提供了言提供了“if语句语句”和和“switch语句语句”两种分支两种分支结构控制语句。上述程序属于选择结构程序,结构控制语句。上述程序属于选择结构程序,根据体重指数值进行判断,显示正

9、常或过胖,根据体重指数值进行判断,显示正常或过胖,具有两个分支,可以用双分支具有两个分支,可以用双分支If语句处理,同语句处理,同时还需注意正确地使用关系表达式表示条件。时还需注意正确地使用关系表达式表示条件。Page 11任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪3.1.1 双分支双分支if语句语句实现分支结构最常用的方法是采用实现分支结构最常用的方法是采用if语句,如智能体语句,如智能体重测量仪程序中的语句:重测量仪程序中的语句:if(index25) printf(n You are right!);else printf (n You are fat!

10、);Page 12任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪3.1.1 双分支双分支if语句语句if语句用于判定所给定的条件是否满足,程序根据判定语句用于判定所给定的条件是否满足,程序根据判定的结果决定所执行的操作。双分支的结果决定所执行的操作。双分支If语句的基本形式:语句的基本形式:if(表达式表达式) 语句语句1;else 语句语句2;Page 13任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪3.1.1 双分支双分支if语句语句执行过程为:先计算执行过程为:先计算“表达式表达式”的值,如果的值,如果“表达式表达式”的值为真

11、,则执行语句的值为真,则执行语句1,否则执行语句,否则执行语句2,其执行过,其执行过程如图程如图3-2所示。所示。图图3-2 双分支双分支if语句的执行流程图语句的执行流程图Page 14任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪3.1.2 关系运算符关系运算符在在C语言中有以下关系运算符:语言中有以下关系运算符: 小于小于 大于大于=大于或等于大于或等于= 等于等于!= 不等于不等于Page 15任务任务3.1 双分支选择语句:智双分支选择语句:智能体重测量仪能体重测量仪3.1.3 关系表达式关系表达式关系表达式的一般形式为:关系表达式的一般形式为:表达式表

12、达式 关系运算符关系运算符 表达式表达式(1) 当关系成立时,表达式的值为逻辑真,用当关系成立时,表达式的值为逻辑真,用1(非非0)表示。表示。(2) 当关系不成立时,表达式的值为逻辑假,用当关系不成立时,表达式的值为逻辑假,用0来来表示。表示。这里的这里的0和和1在程序中被看作是整型量。在程序中被看作是整型量。Page 16任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测任务提出任务提出通过分析身高预测程序,逐步掌握单分支通过分析身高预测程序,逐步掌握单分支if语句语句的基本形式及执行流程,并且学会在的基本形式及执行流程,并且学会在if语句中灵语句中灵活地使用条件表达式。理解

13、任务给出的相关实例活地使用条件表达式。理解任务给出的相关实例程序,能够举一反三、触类旁通。程序,能够举一反三、触类旁通。Page 17任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测工作任务工作任务编写一个具有身高预测功能的程序,预测依据:影编写一个具有身高预测功能的程序,预测依据:影响小孩成人后身高的因素有遗传、饮食习惯和体育响小孩成人后身高的因素有遗传、饮食习惯和体育锻炼情况等,另外小孩成人后的身高与其父母的身锻炼情况等,另外小孩成人后的身高与其父母的身高和自身的性别密切相关。设高和自身的性别密切相关。设faHeight为其父身高,为其父身高,moHeight为其母身高,身

14、高预测公式为:男性成为其母身高,身高预测公式为:男性成人时身高人时身高=(faHeight+moHeight)*0.54(cm);女性;女性成人时身高成人时身高=(faHeight*0.923+moHeight)/2(cm),此外,如果喜爱体育锻炼,那么可增加身高此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高如果有良好的卫生饮食习惯,那么可增加身高1.5%。Page 18任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测任务分析任务分析由于小孩成人后的身高除了与父母身高有关外,还由于小孩成人后的身高除了与父母身高有关外,还与其性别、是否喜爱体

15、育锻炼、是否有良好的卫生与其性别、是否喜爱体育锻炼、是否有良好的卫生饮食习惯有关,性别分男女,可构成双分支选择,饮食习惯有关,性别分男女,可构成双分支选择,而后两项则属于单分支选择,所以此例需要综合使而后两项则属于单分支选择,所以此例需要综合使用单分支与双分支用单分支与双分支if语句实现其中的选择处理。语句实现其中的选择处理。变量:父亲身高、母亲身高、孩子身高等。变量:父亲身高、母亲身高、孩子身高等。男性成人身高公式:男性成人身高公式:(faHeight+moHeight)*0.54(cm)。女性成人身高公式:女性成人身高公式:(faHeight*0.923+moHeight)/2(cm)。算

16、法实现:用关系表达式写出算法实现:用关系表达式写出if语句的条件,性别是语句的条件,性别是男否?爱好体育否?有好的饮食习惯否?根据条件男否?爱好体育否?有好的饮食习惯否?根据条件的真假分别执行相关的分支程序。的真假分别执行相关的分支程序。Page 19任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测任务实现任务实现身高预测程序代码如下所示。身高预测程序代码如下所示。#include void main() char sex; /*孩子性别孩子性别*/ char sports; /*是否喜欢体育运动是否喜欢体育运动*/ char diet; /*是否有良好的饮食习惯是否有良好的饮

17、食习惯*/ float myHeight; /*孩子身高孩子身高*/ float faHeight; /*父亲身高父亲身高*/ float moHeight; /*母亲身高母亲身高*/Page 20任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测任务实现任务实现身高预测程序代码如下所示。身高预测程序代码如下所示。 printf(你是男孩你是男孩(M) 还是女孩还是女孩(F)?); scanf(%1s, &sex); /*输入父亲身高输入父亲身高*/ printf(你输入你爸爸的身高你输入你爸爸的身高(cm):); scanf(%f, &faHeight); pr

18、intf(你输入你妈妈的身高你输入你妈妈的身高(cm):); scanf(%f, &moHeight); /*输入母亲身高输入母亲身高*/ printf(你是否喜欢体育锻炼你是否喜欢体育锻炼(Y/N)?); scanf(%1s, &sports); /*输入是否喜欢体输入是否喜欢体育锻炼?育锻炼?*/ printf(是否有良好的饮食习惯等条件是否有良好的饮食习惯等条件(Y/N)?);Page 21任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测任务实现任务实现身高预测程序代码如下所示。身高预测程序代码如下所示。 scanf(%1s, &diet); /*

19、输入是否有良好输入是否有良好的饮食习惯?的饮食习惯?*/ if(sex=M) myHeight=(faHeight+moHeight)*0.54; /*计算男性成人时的身高计算男性成人时的身高*/ else myHeight=(faHeight*0.923+moHeight)/2.0;/*计计算女性成人时的身高算女性成人时的身高*/ if(sports=Y)Page 22任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测任务实现任务实现身高预测程序代码如下所示。身高预测程序代码如下所示。 myHeight=myHeight*(1+0.02); /*喜欢体育锻炼增加身高喜欢体育锻炼

20、增加身高2%*/ if(diet=Y) myHeight=myHeight*(1+0.015);/*有良好的卫生饮有良好的卫生饮食习惯增加身高食习惯增加身高1.5%*/ printf(你的预测的身高是你的预测的身高是 %f(cm)n, myHeight);/*输出预测的身高输出预测的身高*/Page 23任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测任务实现任务实现程序运行后按提示输入相应信息如图程序运行后按提示输入相应信息如图3-5所示。所示。图图3-5 程序运行结果程序运行结果Page 24任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测3.2.1 单分支

21、单分支if语句语句程序中的程序中的“if(sports=Y) myHeight=myHeight*(1+0.02);”为单分支为单分支if语句。语句。if语语句用于判定所给定的条件是否满足,程序根据判定的句用于判定所给定的条件是否满足,程序根据判定的结果决定是否执行相关的操作。单分支结果决定是否执行相关的操作。单分支If语句基本形式:语句基本形式:if(表达式表达式) 语句语句Page 25任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测3.2.1 单分支单分支if语句语句执行过程为:首先计算执行过程为:首先计算“表达式表达式”的值,当的值,当“表达式表达式”的值为真时,执行的

22、值为真时,执行“语句语句”。其执行过程如图。其执行过程如图3-6所示。所示。图图3-6 单分支单分支if语句的执行流程语句的执行流程Page 26任务任务3.2 单分支选择语句:身单分支选择语句:身高预测高预测3.2.2 条件运算符与条件表达式条件运算符与条件表达式条件运算符为和条件运算符为和:,它是一个三目运算符,即有三个参,它是一个三目运算符,即有三个参与运算的量。与运算的量。由条件运算符组成条件表达式的一般形式为:由条件运算符组成条件表达式的一般形式为:表达式表达式1?表达式表达式2:表达式表达式3Page 27任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制任务提出任务提出通过

23、分析电梯控制程序,进一步加深对单分支通过分析电梯控制程序,进一步加深对单分支if语句的理解,掌握逻辑运算符及表达式在语句的理解,掌握逻辑运算符及表达式在if语句语句中的使用。理解任务给出的相关实例程序,并能中的使用。理解任务给出的相关实例程序,并能够举一反三、触类旁通。够举一反三、触类旁通。Page 28任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制工作任务工作任务本项任务是为电梯厂商编写一个电梯控制程序,本项任务是为电梯厂商编写一个电梯控制程序,要求程序可实现如下功能:输入楼层数,如果楼要求程序可实现如下功能:输入楼层数,如果楼层是层是13,显示提示,显示提示“请走楼梯!请走楼梯!

24、”;如果楼;如果楼层是层是420,显示提示,显示提示“请进电梯!请进电梯!”;如果输;如果输入的是入的是120之外的数据,显示提示之外的数据,显示提示“本楼只有本楼只有120层,输入数据错误,请重新输入!层,输入数据错误,请重新输入!”。Page 29任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制任务分析任务分析电梯控制程序需要对所输入的楼层数进行判断,电梯控制程序需要对所输入的楼层数进行判断,然后决定显示何种提示,它具有单分支结构的特然后决定显示何种提示,它具有单分支结构的特点,可以用点,可以用if单分支语句来编程,其中的条件由单分支语句来编程,其中的条件由于每种条件的取值有多个,

25、需要用逻辑表达式来于每种条件的取值有多个,需要用逻辑表达式来设置条件。设置条件。Page 30任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制任务实现任务实现电梯控制程序具体代码如下所示。电梯控制程序具体代码如下所示。#include void main() int x; printf(请输入你所到的楼层数请输入你所到的楼层数:); scanf(%d,&x); if(x20) printf(n本楼只有本楼只有120层,输入数据错误,请层,输入数据错误,请重新输入重新输入!);Page 31任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制任务实现任务实现电梯控制程序具体代

26、码如下所示。电梯控制程序具体代码如下所示。 if(x=1&x3&x=20) printf(n请进电梯请进电梯!);Page 32任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制任务实现任务实现程序运行后三种不同输入其不同结果如图程序运行后三种不同输入其不同结果如图3-9图图3-11所示。所示。(1) 输入层楼输入层楼25:图图3-9 输入输入25程序运行结果程序运行结果Page 33任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制任务实现任务实现程序运行后三种不同输入其不同结果如图程序运行后三种不同输入其不同结果如图3-9图图3-11所示。所示。(2) 输入层楼

27、输入层楼2:图图3-10 输入输入2程序运行结果程序运行结果Page 34任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制任务实现任务实现程序运行后三种不同输入其不同结果如图程序运行后三种不同输入其不同结果如图3-9图图3-11所示。所示。(3) 输入层楼输入层楼5:图图3-11 输入输入5程序运行结果程序运行结果Page 35任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制3.3.1 逻辑运算符逻辑运算符!(逻辑非逻辑非)|(逻辑或逻辑或)&(逻辑与逻辑与)Page 36任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制3.3.1 逻辑运算符逻辑运算符图图3-1

28、2 逻辑运算符在所有运算符中的优先级逻辑运算符在所有运算符中的优先级Page 37任务任务3.3 逻辑运算符:电梯控制逻辑运算符:电梯控制3.3.2 逻辑表达式逻辑表达式表表3-1 逻辑运算法则逻辑运算法则ab!aa&ba|b非非0非非0011非非000010非非010100100说明说明0变变1,非,非0变变0只有两者均为非只有两者均为非0时才时才为为1只有两者均为只有两者均为0时才时才为为0Page 38任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪任务提出任务提出通过分析智能体重测量仪程序,逐步掌握多分支通过分析智能体重测量仪程序,逐步掌握

29、多分支if语句的基本形式及执行流程,理解任务给出的语句的基本形式及执行流程,理解任务给出的相关实例程序,学会使用相关实例程序,学会使用if 语句嵌套去解决常见语句嵌套去解决常见的问题。的问题。Page 39任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪工作任务工作任务编写一个体重测量仪程序:要求从键盘输入身高编写一个体重测量仪程序:要求从键盘输入身高和体重后,计算出体重指数并根据体重指数显示和体重后,计算出体重指数并根据体重指数显示此人体重状态。此人体重状态。体重指数体重指数=体重体重(kg)/(身高身高)2。要求实现如下的判断。要求实现如下的判断。偏瘦

30、:体重指数偏瘦:体重指数18。正常:正常:18体重指数体重指数25。微胖:微胖:25体重指数体重指数30。较胖:较胖:30体重指数体重指数35。肥胖:肥胖:35体重指数体重指数40。很胖:体重指数很胖:体重指数40。Page 40任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪任务分析任务分析由于智能体重测量仪需要将计算出的可能体重指由于智能体重测量仪需要将计算出的可能体重指数划分为六个等级,这六个等级对应有六个条件,数划分为六个等级,这六个等级对应有六个条件,且相邻条件间又有一定的联系,可以使用具有多且相邻条件间又有一定的联系,可以使用具有多分支选择特点

31、的分支选择特点的if语句来编写此程序。语句来编写此程序。Page 41任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪任务实现任务实现智能体重测量仪程序具体代码如下。智能体重测量仪程序具体代码如下。#include void main() float weight,height,index; printf(n 请输入你的体重请输入你的体重(kg):); scanf(%f, &weight); /*输入体重值输入体重值*/ printf(n 请输入你的身高请输入你的身高(m):); scanf(%f, &height); /*输入身高值输入身

32、高值*/ index=weight/(height*height); /*计算体重指数计算体重指数*/Page 42任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪任务实现任务实现智能体重测量仪程序具体代码如下。智能体重测量仪程序具体代码如下。printf(你的体重系数是你的体重系数是: %f, index); /*输出体重输出体重指数值指数值*/ if(index18) printf(偏瘦偏瘦!n); else if(index25)printf(标准标准!n); else if(index30) printf(微胖微胖!n); /*体体重指数介于重指数

33、介于25与与30之间之间*/ else if(index35) printf(较胖较胖!n); else if(index40) printf(肥胖肥胖!n); else printf(很胖很胖!n);Page 43任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪任务实现任务实现程序运行后如图程序运行后如图3-14所示。所示。图图3-14 智能体重测量仪程序运行结果智能体重测量仪程序运行结果Page 44任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪3.4.1 多分支多分支if 语句语句智能体重测量仪程序中使用了下列

34、语句:智能体重测量仪程序中使用了下列语句:if(index18) printf(偏瘦偏瘦!n);else if(index25) printf(标准标准!n);else if(index30) printf(微胖微胖!n);else if(index35) printf(较胖较胖!n);else if(index40) printf(肥胖肥胖!n);else printf(很胖很胖!n);Page 45任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪3.4.1 多分支多分支if 语句语句多分支多分支if语句的基本形式为:语句的基本形式为:if(表达式表达式

35、1) 语句语句1;else if(表达式表达式2) 语句语句2;else if(表达式表达式3) 语句语句3;else if(表达式表达式m) 语句语句m;else 语句语句n;Page 46任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪3.4.1 多分支多分支if 语句语句图图3-15 多分支多分支if语句执行流程语句执行流程Page 47任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪3.4.2 if语句的嵌套语句的嵌套在在C语言中,除了使用上述多分支语言中,除了使用上述多分支if语句外,还可以采用语句外,还可以

36、采用if语句的嵌套来处理多分支情况。语句的嵌套来处理多分支情况。(1) if(表达式表达式) if(表达式表达式) 语句语句1; else 语句语句2; else if(表达式表达式) 语句语句3; else 语句语句4;Page 48任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪3.4.2 if语句的嵌套语句的嵌套在在C语言中,除了使用上述多分支语言中,除了使用上述多分支if语句外,还可以采用语句外,还可以采用if语句的嵌套来处理多分支情况。语句的嵌套来处理多分支情况。(2) if(表达式表达式)if(表达式表达式) 语句语句1; else 语句语句2

37、; else 语句语句3;Page 49任务任务3.4 多分支选择语句多分支选择语句ifelse:智能体重测量仪智能体重测量仪3.4.2 if语句的嵌套语句的嵌套在在C语言中,除了使用上述多分支语言中,除了使用上述多分支if语句外,还可以采用语句外,还可以采用if语句的嵌套来处理多分支情况。语句的嵌套来处理多分支情况。(3) if(表达式表达式)语句语句1;else if(表达式表达式) 语句语句2; else 语句语句3;Page 50任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机任务提出任务提出通过分析模拟自动饮料机程序,逐步掌握通过分析模拟自动饮料机程序,逐步掌握s

38、witch语句基本形式及执行过程。当语句基本形式及执行过程。当switch语语句中存在若干分支需要执行相同操作时,会使多句中存在若干分支需要执行相同操作时,会使多个个case分支共用一组语句,简化程序的内容,分支共用一组语句,简化程序的内容,提高编程效率。理解任务给出的相关实例程序,提高编程效率。理解任务给出的相关实例程序,能够举一反三、触类旁通。能够举一反三、触类旁通。Page 51任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机工作任务工作任务编写一个程序用于模拟自动饮料机,先在屏幕中编写一个程序用于模拟自动饮料机,先在屏幕中显示以下提示信息:显示以下提示信息:=自动饮

39、料机自动饮料机 =1可口可乐可口可乐2雪碧雪碧3芬达芬达4百事可乐百事可乐5非常可乐非常可乐当输入可供选择的合法数字后,即可输出可获得当输入可供选择的合法数字后,即可输出可获得的相应饮料名称。的相应饮料名称。Page 52任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机任务分析任务分析前面介绍的前面介绍的if语句当要表示两种以上条件的选择语句当要表示两种以上条件的选择时,则要用时,则要用if语句的第三种形式或者语句的第三种形式或者if语句的嵌语句的嵌套形式,当嵌套的套形式,当嵌套的if语句比较多时,程序冗长且语句比较多时,程序冗长且可读性降低。在可读性降低。在C语言中,可直

40、接用语言中,可直接用switch语句语句来实现多种情况的选择结构。模拟自动饮料机程来实现多种情况的选择结构。模拟自动饮料机程序可能的输入情况有序可能的输入情况有6种,用种,用switch语句处理起语句处理起来非常方便。来非常方便。Page 53任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机任务实现任务实现模拟自动饮料机程序代码如下所示。模拟自动饮料机程序代码如下所示。#include stdio.hvoid main() int button; printf(=自动饮料机自动饮料机 =n); printf(1.可口可乐可口可乐n); printf(2.雪碧雪碧n); pr

41、intf(3.芬达芬达n); printf(4.百事可乐百事可乐n); printf(5.非常可乐非常可乐n);Page 54任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机任务实现任务实现模拟自动饮料机程序代码如下所示。模拟自动饮料机程序代码如下所示。 printf(请按请按1-5键选择饮料键选择饮料:n); scanf(%d,&button); /*输入选择输入选择*/ switch(button) /*对输入进行判断对输入进行判断*/ case 1:printf(n你获得一听可口可乐你获得一听可口可乐n);break; case 2:printf(n你获得一听

42、雪碧你获得一听雪碧n);break; case 3:printf(n你获得一听芬达你获得一听芬达n);break; case 4:printf(n你获得一听百事可乐你获得一听百事可乐n);break;Page 55任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机任务实现任务实现模拟自动饮料机程序代码如下所示。模拟自动饮料机程序代码如下所示。 case 5:printf(n你获得一听非常可乐你获得一听非常可乐n);break; default:printf(n非法操作非法操作!n);break; Page 56任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料

43、机任务实现任务实现程序运行后如图程序运行后如图3-18所示。所示。图图3-18 自动饮料机程序运行结果自动饮料机程序运行结果Page 57任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机3.5.1 switch开关语句开关语句自动饮料机程序中片段自动饮料机程序中片段switch(button) case 1:printf(n你获得一听可口可乐你获得一听可口可乐n);break; case 2:printf(n你获得一听雪碧你获得一听雪碧n);break; case 3:printf(n你获得一听芬达你获得一听芬达n);break; case 4:printf(n你获得一听百

44、事可乐你获得一听百事可乐n);break; case 5:printf(n你获得一听非常可乐你获得一听非常可乐n);break; default:printf(n非法操作非法操作!n);break;Page 58任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机3.5.1 switch开关语句开关语句switch语句的一般形式为:语句的一般形式为:switch(表达式表达式) case常量表达式常量表达式1: 语句语句1; case常量表达式常量表达式2: 语句语句2; case常量表达式常量表达式n: 语句语句n; default : 语句语句n+1;Page 59任务任务

45、3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机3.5.2 处理多个不同分支相同操作的处理多个不同分支相同操作的switch语句语句【练习练习3-9】从键盘上输入一个百分制成绩从键盘上输入一个百分制成绩score,按,按下列原则输出其等级:下列原则输出其等级:score90,等级为,等级为A;80score90,等级为,等级为B;70score80,等级为,等级为C;60score70,等级为,等级为D;score60,等级为,等级为E。程序具体代码如下所示。程序具体代码如下所示。#includemain() int score, grade; printf(“Input a sc

46、ore(0100): ”); scanf(“%d”, &score);Page 60任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机3.5.2 处理多个不同分支相同操作的处理多个不同分支相同操作的switch语句语句grade = score/10; /*将成绩整除将成绩整除10,转化成,转化成switch语句中的语句中的case标号标号*/ switch (grade) case 10: case 9: printf(“grade=An”); break; case 8: printf(grade=Bn); break; case 7: printf(grade=

47、Cn); break; case 6: printf(grade=Dn); break; case 5: case 4: case 3: case 2:Page 61任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机3.5.2 处理多个不同分支相同操作的处理多个不同分支相同操作的switch语句语句 case 1: case 0: printf(“grade=En”); break; default: printf(“The score is out of range!n”); Page 62任务任务3.5 switch语句:模拟自动语句:模拟自动饮料机饮料机3.5.2 处理

48、多个不同分支相同操作的处理多个不同分支相同操作的switch语句语句程序运行后如图程序运行后如图3-21所示。所示。图图3-21 练习练习3-9程序运行结果程序运行结果Page 63任务任务3.6 实例分析:简单的计算实例分析:简单的计算器程序器程序任务提出任务提出通过分析简单的计算器程序,进一步掌握通过分析简单的计算器程序,进一步掌握switch语句的格式及执行流程,领会语句的格式及执行流程,领会break语句语句跳出跳出switch语句的方法,理解任务给出的相关语句的方法,理解任务给出的相关实例程序,初步树立选择结构程序设计的基本思实例程序,初步树立选择结构程序设计的基本思路,能独立地编写

49、出一些简单的选择结构程序。路,能独立地编写出一些简单的选择结构程序。Page 64任务任务3.6 实例分析:简单的计算实例分析:简单的计算器程序器程序工作任务工作任务编写一个简单的计算器程序,当用户通过键盘输编写一个简单的计算器程序,当用户通过键盘输入两个操作数和一个四则运算符后,程序会输出入两个操作数和一个四则运算符后,程序会输出计算的结果。计算的结果。Page 65任务任务3.6 实例分析:简单的计算实例分析:简单的计算器程序器程序任务分析任务分析本例程序可以使用本例程序可以使用switch语句对运算符进行判语句对运算符进行判断,根据不同运算符输出不同的运算值。同时还断,根据不同运算符输出

50、不同的运算值。同时还要考虑到:如果输入的运算符是除法,则除数不要考虑到:如果输入的运算符是除法,则除数不能为零。所以在此能为零。所以在此switch分支语句中需要使用分支语句中需要使用双分支双分支if语句进行选择控制,综合运用多种分支语句进行选择控制,综合运用多种分支语句才能顺利解决这一问题。语句才能顺利解决这一问题。Page 66任务任务3.6 实例分析:简单的计算实例分析:简单的计算器程序器程序任务实现任务实现简单的计算器程序具体代码如下所示。简单的计算器程序具体代码如下所示。#include #include void main() float data1, data2; /*定义两个操

51、作符定义两个操作符*/ char op; /*定义运算符定义运算符*/ printf(Please enter the expression:n); scanf(%f%1s%f, &data1, &op, &data2); /*输入运算表达式输入运算表达式*/Page 67任务任务3.6 实例分析:简单的计算实例分析:简单的计算器程序器程序任务实现任务实现简单的计算器程序具体代码如下所示。简单的计算器程序具体代码如下所示。switch (op) /*根据输入的运算符确定要根据输入的运算符确定要执行的运算执行的运算*/ case +:printf(%f+%f=%fn, d

52、ata1, data2, data1+data2); break; case -:printf(%f-%f=%fn, data1, data2, data1-data2); break; case *:printf(%f*%f=%fn, data1, data2, data1*data2); break;Page 68任务任务3.6 实例分析:简单的计算实例分析:简单的计算器程序器程序任务实现任务实现简单的计算器程序具体代码如下所示。简单的计算器程序具体代码如下所示。 case /:if (fabs(data2) = 1e-7)/*与实数与实数0比较比较*/ printf(Division b

53、y zero!n); else printf(%f/%f=%fn, data1, data2, data1/data2); break; default:printf(Unknown operator!n); Page 69任务任务3.6 实例分析:简单的计算实例分析:简单的计算器程序器程序任务实现任务实现程序运行后如图程序运行后如图3-22所示。所示。图图3-22 简单计算器程序运行结果简单计算器程序运行结果Page 70任务任务3.6 实例分析:简单的计算实例分析:简单的计算器程序器程序3.6.1 程序中分支语句应用程序中分支语句应用简单计算器程序中片段简单计算器程序中片段case /:i

54、f (fabs(data2) =5 or a=5|a=5 &a=5|ay|xz); printf(%dn,t);习习 题题一、选择题一、选择题3下列程序执行后的输出结果是下列程序执行后的输出结果是( )。AG BH CE DJmain() int x=d; printf(%cn,A+(x-a+1); 习习 题题一、选择题一、选择题4有如下程序段有如下程序段执行该程序段后,执行该程序段后,x的值为的值为( )。AtureBfalse C0 D1int a=14,b=15,x;char c=A;x=(a&b)&(cB);习习 题题一、选择题一、选择题5若变量若变量c为为char类型,能正确判断出类型,能正确判断出c为大写字母的表达式是为大写字母的表达式是( )。AA=c=A)|(c=Z)C(A=c)D(c=A)&(c=Z)6运行程序:运行程序:则输出结果是则输出结果是( )。A0 B1 C1.5D结果不确定结果不确定main) int x=1.5; char z=a; printf(%dn,(x2)&(zz);习习 题题一、选择题一、选择题7若若a为为int类型,且其值为类型,且其值为5,则执行表达式,则执行表达式a+=a-=a*a后,后,a的值是的值是( )。A-5 B-40 C-15D不确定不确定8设设x、y、t均为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论