第3章 选择结构流程与应用_第1页
第3章 选择结构流程与应用_第2页
第3章 选择结构流程与应用_第3页
第3章 选择结构流程与应用_第4页
第3章 选择结构流程与应用_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

第3章

选择结构流程和应用学习目标1了解选择结构判定条件的构成2掌握单分支与双分支选择结构程序设计3掌握多分支选择结构程序设计

1选择结构判定条件的构成关系运算符与关系表达式

逻辑运算符与逻辑表达式

关系运算符

关系运算是对两个操作数之间进行比较的运算符,其运算结果为逻辑值(或称“布尔”值,boolean)“真”或“假”。C语言中提供六种关系运算符,如表3-1所示。

关系表达式

用关系运算符把两个表达式连接起来的式子称为关系表达式。一般形式为:表达式1关系运算符表达式2

例如:x>3y<100!(x==0)x!=10试一试问题3.1

关系运算符和关系表达式的用法演示。

调试问题3.1程序,观察运行结果逻辑运算符及其运算规则

逻辑运算可以表示运算对象的逻辑关系。表3-2给出了C语言中逻辑运算符的种类、功能及运算规则。表3-3给出了逻辑运算真值表,说明了当参加逻辑运算的运算对象为不同组合时,各种逻辑运算得到的结果。逻辑表达式

关系表达式只能描述单一的条件,而当选择判定的条件有多个时,就要借助于逻辑表达式。用逻辑运算符连接起来的式子称为逻辑表达式。一般形式为:表达式1&&表达式2

或:

!表达式或:表达式1||表达式2

逻辑表达式执行时,先计算“表达式1”和“表达式2”或“表达式”的值,然后进行逻辑运算,运算的结果为真时逻辑表达式的值为1,否则为0。试一试问题3.2

逻辑运算符和逻辑表达式的用法演示。请观察程序运行结果。【程序代码】调试问题3.2程序,观察运行结果再试一试问题3.3

逻辑运算符&&和||用法演示。请观察程序运行结果。调试问题3.3程序,观察运行结果小结1.不要把关系运算符“==”误用为赋值运算符“=”。比如,如果将判断iX是否等于8的关系表达式“iX==8”写成“iX=8”,那么它永远为“真”(不管iX原来的值是多少)。2.正确书写关系表达式。如果表示“iX大于等于5,且iX小于等于20”,在数学中可写为式子:5≤iX≤20,而在C程序中,如果写成下面的表达式:

5<=iX<=20

则是错误的。但这种错误是一种语义上的错误,而不是语法上的错误,编译器查不出来,编译时不会报告错误,但运行时,不论iX为何值(比如为3或60)表达式的值都是“真”,所以这种错误比较“隐蔽”,不易被发现,希望引起注意。正确的写法应该是:

5<=iX&&iX<=203.算术运算符、关系运算符、逻辑运算符、赋值运算符在一起进行混合运算时,各类运算符的优先级如下所示(自左至右,从高到低):!(非)—>算术运算—>关系运算—>&&—>||—>赋值运算

2单分支和双分支选择结构程序设计简单if语句if-else语句条件运算符与条件表达式简单if语句学一学简单if语句的形式为:

if(条件表达式)语句

其流程图如图3-1所示。语句的执行过程是先计算“条件表达式”,若值为“真”,则执行“语句”;否则什么也不做。此处的“语句”可以是简单语句,也可以是用一对大括号“{}”括起来的复合语句。

试一试问题3.4从键盘输入一个数,输出其绝对值。调试问题3.4程序,观察运行结果练一练问题:小明去参加一个同学的生日聚会,同学的家长规定18岁以上的才可以饮酒,所以需要编一程序根据输入的年龄打印一张饮酒卷,使的能饮酒的同学可以获取饮酒卷。if-else语句

学一学

if-else语句是标准的if语句。用来实现双分支选择结构,其一般形式为:

if(条件)语句1;

else语句2;

流程图如图3-3所示,若“条件”为“真”,则执行“语句1”;否则执行“语句2”。此处的“语句1”和“语句2”可以是简单语句,也可以是用一对大括号“{}”括起来的复合语句。试一试

问题3.5

编一程序控制电灯开关。从键盘输入1表示开灯,这时显示“thelightisOn”,输入0或其它数表示关灯,显示“thelightisoff”。

调试问题3.5程序,观察运行结果练一练

问题:编一程序,从键盘输入一个整数,判断它的奇偶性。如果输入的是奇数,输出“ODD”,如果输入的是偶数,则输出“EVEN”。提示:一个数若能被2整除,则该数是偶数,若这个数不能被2整除,则该数为奇数。判断一个数能否被另一个数整除可用求余运算,比如5%3=1,说明5不能整除3,6%3=0,说明6可以整除3。

条件运算符与条件表达式学一学C语言中有一种特有的运算符称为条件运算符,即“?:”。它在某种程度上可以起到逻辑判断的作用,一样可以实现双分支选择结构。由条件运算符构成的表达式称为条件表达式,与if-else语句具有相同的功能。其一般形式为:

表达式1?表达式2:表达式3

运算规则为:如果“表达式1”的值为真,则条件表达式的运算结果等于“表达式2”的值,否则,运算结果等于“表达式3”的值。试一试问题3.6:编一程序从键盘输入两个整数,输出较大的一个。

调试问题3.6程序,观察运行结果练一练问题:1.请用if-else语句实现问题3-6的双分支选择结构。2.用条件表达式实现问题3-5的双分支选择结构。小结1.if和else同属于一个if语句,else不能作为语句单独使用,它只是if语句的一部分,与if配对使用。因此程序中不可以没有if而只有else。2.if-else语句在执行时,只能执行与if有关的语句或者执行与else有关的语句,而不可能同时执行两者。3.if语句的表达式可以是任意类型的C语言的合法的表达式,除常见的关系表达式或逻辑表达式外,也允许是其它类型的数据,如整型、实型、字符型等。4.在if和else的后面,可以是单条语句,也可以复合语句。单条语句时,注意别忘记写分号“;”,复合语句时要注意“{}”的后面不能加“;”。5.条件运算符的其结合性为“从右到左”(即右结合性)。比如表达式iA>iB?iA:iC>iD?iC:iD相当于iA>iB?iA:(iC>iD?iC:iD),如果iA=1,iB=2,iC=3,iD=4,则上述条件表达式的值等于4。6.条件表达式一般形式(表达式1?表达式2:表达式3)中的“表达式1”、“表达式2”、“表达式3”的类型,可以各不相同。“表达式2”和“表达式3”不仅可以是数值表达式,也可以是赋值表达式或函数表达式。比如

iX>iY?printf(“%d”,iX):printf(“%d”,iY)

如果iX=3,iY=4,则条件表达式执行结果为输出iY的值。3多分支选择结构程序设计嵌套if-else语句switch语句

嵌套if-else语句学一学所谓嵌套就是在if-else语句的if或else子句中又包含了一个或多个if-else语句。其目的是解决多分支选择问题,其一般形式为:

if(条件1)语句1;

elseif(条件2)语句2;

elseif(条件3)语句3;┇

elseif(条件n-1)语句n-1;

else语句n;

这是由双路选择语句所构成的多路选择结构。此处的“语句1”、“语句2”…“语句n”可以是简单语句,也可以是用一对大括号“{}”括起来的复合语句。语句流程图如图3-6所示。流程图试一试问题3.7从键盘输入一个自变量x,求分段函数y=f(x)的值,f(x)的表达式如下:

调试问题3.7程序,观察运行结果再试一试问题3.8编一程序将成绩的百分制转换为等级制。百分制与等级制的对应关系如下:90-100对应A、80-89对应B、70-79对应C、60-69对应D、0-59对应E。

调试问题3.8程序,观察运行结果练一练问题1.根据图3-8给出的流程图编写程序,对比问题3.7中的程序代码。2.编一程序可查询驾驶证可以驾驶的车辆类型的。要求从键盘输入驾照的类型可以输出相应的准驾车型。比如输入驾照类型‘C’,输出准驾车型:小轿车。其中,A牌驾照可驾驶大客车、人货车和小轿车,B牌驾照可驾驶人货车和小轿车,C牌驾照可驾驶小轿车,D牌驾照可驾驶摩托车。switch语句学一学

switch语句是C语言中又一种实现多分支选择结构的语句,其一般形式是:switch(表达式){case常量表达式1:语句序列1case常量表达式2:语句序列2……case常量表达式n:语句序列ndefault:语句序列n+1}流程图试一试问题3.9编一程序可查询驾驶证可以驾驶的车辆类型。要求从键盘输入驾照的类型。比如输入驾照类型‘C’,输出“你可以驾驶小轿车”。其中,A牌驾照可驾驶大客车、人货车和小轿车,B牌驾照可驾驶人货车和小轿车,C牌驾照可驾驶小轿车,D牌驾照可驾驶摩托车。调试问题3.9程序,观察运行结果再试一试问题3.10用switch语句解决问题3.8,将成绩的百分制转换为等级制。调试问题3.10程序,观察运行结果练一练问题:将星期一、星期二…星期六、星期日依次编号为1、2…6、7,编一程序从键盘输入星期的序号,可输出其对应的英文。比如,输入6,可输出”Saturday”。小结1.嵌套if-else语句和switc

温馨提示

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

评论

0/150

提交评论