版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4章章 选择结构程序设计选择结构程序设计4.1 条件的描述条件的描述4.2 IF选择结构选择结构4.3 条件运算条件运算4.4 SWITCH多分支选择结构多分支选择结构4.5 选择结构程序举例选择结构程序举例本章小结本章小结4.1 条件的描述条件的描述4.1.1 关系运算关系运算1关系运算符关系运算符C语言的关系运算符有:语言的关系运算符有:(小于)、(大于)、=(大于等于)、=(等于)、!=(不等于)在在C语言中,约定以语言中,约定以1(非(非0)表示真,以)表示真,以0表示表示假。由于假。由于C语言中没有逻辑型数据,因此语言中没有逻辑型数据,因此C语言语言规定用整型数据来表示逻辑值,即
2、用整数值规定用整型数据来表示逻辑值,即用整数值1表表示逻辑真,用整数值示逻辑真,用整数值0表示逻辑假。在表示逻辑假。在C语言中,语言中,将非将非0视为真。视为真。在上述在上述6种关系运算符中前种关系运算符中前4种(种(、=)的优先级高于后两种(的优先级高于后两种(=、!=)。另外,关系)。另外,关系运算符的优先级低于算术运算符的优先级。运算符的优先级低于算术运算符的优先级。2关系表达式关系表达式关系表达式是由关系运算符将两个表达式连接起来关系表达式是由关系运算符将两个表达式连接起来的式子。一般格式为:的式子。一般格式为:表达式1 关系运算符 表达式2关系表达式的结果为关系表达式的结果为1(真)
3、或(真)或0(假)。设有(假)。设有I=1,J=2,K=3,则,则IJ的值为的值为0,I=KJ的值为的值为1(先计(先计算算KJ,其值为,其值为1,等于,等于I的值),的值),I+J=K的值为的值为1。在表达式中连续使用关系运算符时,要注意正确表在表达式中连续使用关系运算符时,要注意正确表达运算的含义,注意运算优先级和结合性。例如,达运算的含义,注意运算优先级和结合性。例如,变量变量X的取值范围为的取值范围为0X20时,不能写成时,不能写成0=X=20,因为关系表达式因为关系表达式0=X=20的运算过程是:按照优先的运算过程是:按照优先级,先求出级,先求出0=X的结果,再将结果的结果,再将结果
4、1或或0作作=0 & X1 & 4 & 7B?A:B中使用了条件表达式,很中使用了条件表达式,很简洁地表示了判断变量简洁地表示了判断变量A与与B的最大值并赋给变的最大值并赋给变量量Z的功能。所以,使用条件表达式可以简化的功能。所以,使用条件表达式可以简化程序。程序。另外,条件运算的另外,条件运算的3个运算分量的数据类型可以个运算分量的数据类型可以各不相同。例如:各不相同。例如:I?A:AI是整型变量,若是整型变量,若I的值非的值非0,则条件表达式的值,则条件表达式的值为为A,否则条件表达式的值为,否则条件表达式的值为A。又如:。又如:IJ?20:31.5当条件运算中,表达式当条件运算中,表达式
5、2与表达式与表达式3的类型不一的类型不一致时,致时,C语言约定在表达式语言约定在表达式2与表达式与表达式3中,类中,类型低的向类型高的转换。因此,上式当型低的向类型高的转换。因此,上式当IJ时,时,条件表达式的值为条件表达式的值为20.0,否则为,否则为31.5。【例例4.8】生成生成3个随机整数,输出其中最大的数。个随机整数,输出其中最大的数。例例4.7和例和例4.8中介绍了求中介绍了求3个数中的最大数的实现方个数中的最大数的实现方法,可以选择单分支、多分支、法,可以选择单分支、多分支、IF结构嵌套和条件结构嵌套和条件表达式来实现,这说明了程序实现方法的多样性,表达式来实现,这说明了程序实现
6、方法的多样性,需要不断进行分析和总结,以选择最简洁、效率最需要不断进行分析和总结,以选择最简洁、效率最高的实现方法。高的实现方法。4.4 SWITCH多分支选择结构多分支选择结构C语言提供了一个更为方便的实现多分支结构语言提供了一个更为方便的实现多分支结构的语句的语句SWITCH,一般格式为:,一般格式为:SWITCH(表达式) CASE 常量表达式1:语句1;BREAK; CASE 常量表达式2:语句2;BREAK; CASE 常量表达式M:语句M;BREAK; DEFAULT:语句N;BREAK;其中,其中,SWITCH后面的表达式和后面的表达式和CASE后面的后面的常量表达式一般是整型或
7、字符型。常量表达式一般是整型或字符型。图图4-5 SWITCH多分支选择结构的执行过多分支选择结构的执行过程程(1)每一个)每一个CASE后的常量表达式的值应当互后的常量表达式的值应当互不相同,但不同的常量表达式可以共用一个语不相同,但不同的常量表达式可以共用一个语句。例如,有句。例如,有SWITCH语句:语句:SWITCH (K) CASE 1: CASE 2:PRINTF(AAAN);BREAK; CASE 3: CASE 4: CASE 5:PRINTF(BBBN);当当K=1或或2时,均输出:时,均输出:AAA当当K=3,4,5时,均输出:时,均输出:BBB(2)为了在执行某个)为了在
8、执行某个CASE分支后,使流程跳出分支后,使流程跳出SWITCH结构,即终止结构,即终止SWITCH语句的执行,总是语句的执行,总是将将BREAK语句与语句与SWITCH语句一起使用,即把语句一起使用,即把BREAK语句作为每个语句作为每个CASE分支的最后一条语句,分支的最后一条语句,当执行到当执行到BREAK语句时,使流程跳出本条语句时,使流程跳出本条SWITCH语句,转去执行语句,转去执行SWITCH 语句的后继语语句的后继语句。如果不使用句。如果不使用BREAK语句,则一旦进入某个语句,则一旦进入某个CASE后面的语句,就由此开始顺序执行后面各后面的语句,就由此开始顺序执行后面各CAS
9、E语句。语句。(3)SWITCH语句体中可以不包含语句体中可以不包含DEFAULT分支,而且分支,而且DEFAULT分支并不限定在最后,分支并不限定在最后,但会影响执行结果。例如上述但会影响执行结果。例如上述SWITCH语句中,语句中,若将若将DEFAULT分支放在分支放在CASE C分支之前,分支之前,则则GRADE的值为的值为B时,将连续输出:时,将连续输出:GOODVERY BADBADGRADE的值为C时,将输出:BADGRADE的值为D时,将输出:VERY BADBAD【例例4.9】输入两个运算量和一个运算符,完输入两个运算量和一个运算符,完成加、减、乘、除运算,输出运算结果。成加、
10、减、乘、除运算,输出运算结果。4.5 选择结构程序举例选择结构程序举例【例例4.10】输入一个整数,判断它是否为水仙输入一个整数,判断它是否为水仙花数。所谓水仙花数,是指这样的一些花数。所谓水仙花数,是指这样的一些3位整数:位整数:各位数字的立方和等于该数本身,例如各位数字的立方和等于该数本身,例如153。【例例4.11】编写一个菜单程序,用以完成数制编写一个菜单程序,用以完成数制转换。转换。(1)输入)输入1,将十进制转换为十六进制。,将十进制转换为十六进制。(2)输入)输入2,将十六进制转换为十进制。,将十六进制转换为十进制。(3)输入)输入3,将十进制转换为八进制。,将十进制转换为八进制
11、。(4)输入)输入4,将八进制转换为十进制。,将八进制转换为十进制。【例例4.12】求一元二次方程求一元二次方程AX2+BX+C=0的根。的根。【例例4.13】输入年月,求该月的天数。输入年月,求该月的天数。【例例4.14】计算分段函数值。计算分段函数值。本本 章章 小小 结结1根据某种条件的成立与否而采用不同的程序段进根据某种条件的成立与否而采用不同的程序段进行处理的程序结构称为选择结构。选择结构又可分行处理的程序结构称为选择结构。选择结构又可分为单分支、双分支和多分支为单分支、双分支和多分支3种情况。一般采用种情况。一般采用IF语语句实现单分支、双分支或多分支结构程序,用句实现单分支、双分
12、支或多分支结构程序,用SWITCH和和BREAK语句实现多分支结构程序。虽语句实现多分支结构程序。虽然用嵌套然用嵌套IF语句也能实现多分支结构程序,但用语句也能实现多分支结构程序,但用SWITCH和和BREAK语句实现的多分支结构程序更语句实现的多分支结构程序更加简洁明了。加简洁明了。2IF语句条件表达式的书写非常灵活,通常用关系语句条件表达式的书写非常灵活,通常用关系表达式或逻辑表达式表示,也可以用一般表达式表表达式或逻辑表达式表示,也可以用一般表达式表示。因为表达式的值非示。因为表达式的值非0为为“真真”,0为为“假假”。所以具。所以具有值的表达式均可作有值的表达式均可作IF语句的控制条件
13、。要特别注语句的控制条件。要特别注意区分赋值运算符意区分赋值运算符 = 和关系等于运算符和关系等于运算符 = ,不要,不要混淆。请分析以下两个语句的差异:混淆。请分析以下两个语句的差异:IF(X=X%2*2) Y=100;IF(X=X%2*2) Y=100;3逻辑运算表达式可以表示更复杂的条件,在其求逻辑运算表达式可以表示更复杂的条件,在其求值过程中,并不是所有的运算都一一计算,而是当值过程中,并不是所有的运算都一一计算,而是当表达式值已能确定时,其右部的运算就不再进行。表达式值已能确定时,其右部的运算就不再进行。(1)A&B&C:只有:只有A为真(非为真(非0)时,才需要)时,才需要判别判别
14、B的值,只有的值,只有A和和B都为真的情况下才需要判别都为真的情况下才需要判别C的值。对的值。对&运算符,只有运算符,只有A非非0时,才继续进行时,才继续进行右面的运算。右面的运算。(2)A|B|C:只有:只有A为假(为假(0)时,才需要判别)时,才需要判别B的的值,只有值,只有A和和B都为假的情况下才需要判别都为假的情况下才需要判别C的值。的值。对对 | 运算符,只有运算符,只有A为为0时,才继续进行其右面的运时,才继续进行其右面的运算。算。4IF语句有各种形式,要注意其书写格式,理解其语句有各种形式,要注意其书写格式,理解其执行过程。表示条件的表达式一定要加括号。当语执行过程。表示条件的表
15、达式一定要加括号。当语句句1或语句或语句2含有多个语句时,一定要写成复合语句。含有多个语句时,一定要写成复合语句。5采用嵌套采用嵌套IF语句还可以实现较为复杂的多分支结语句还可以实现较为复杂的多分支结构程序。在嵌套构程序。在嵌套IF语句中,一定要弄清楚语句中,一定要弄清楚ELSE与与哪个哪个IF结合。结合。C语言规定,语言规定,ELSE与其前最近的同一与其前最近的同一复合语句的不带复合语句的不带ELSE的的IF结合。书写嵌套结合。书写嵌套IF语句语句往往采用缩进的阶梯式写法,目的是便于看清往往采用缩进的阶梯式写法,目的是便于看清ELSE与与IF结合的逻辑关系,但这种写法并不能改结合的逻辑关系,
16、但这种写法并不能改变变IF语句的逻辑关系。语句的逻辑关系。 6如果如果IF语句的两个分支都是赋值语句,且是给同语句的两个分支都是赋值语句,且是给同一个变量赋值的语句,可以用条件运算符来代替一个变量赋值的语句,可以用条件运算符来代替IF语句。条件运算符需要语句。条件运算符需要3个操作对象。用条件运算符个操作对象。用条件运算符组成的表达式称为条件表达式,其格式为:组成的表达式称为条件表达式,其格式为:表达式1?表达式2:表达式3当表达式当表达式1为非为非0时,以表达式时,以表达式2的结果作为条件表达的结果作为条件表达式的结果;当表达式式的结果;当表达式1为为0时,以表达式时,以表达式3的结果为条的结果为条件表达式的结果。条件运算符的结合方向为从右至件表达式的结果。条件运算符的结合方向为从右至左。左。7使用使用SWITCH语句的困难在于构造其中的表达语句的困难在于构造其中的表达式。式。SWITCH后的表达式的类型常用后的表达式的类型常用INT或或CHAR。CASE后的常量表达式类型一定与表达式类型匹配;后的常量表达式类型一定与表达式类型匹配;CASE后常量表达式的值必须互不相同;后常量表达式的值必须互不相同;CASE和和DEFAULT出现次序不影响执行结果,出现次序不影响执行结果,DE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年乡村住宅中介购买协议
- 2024年商业店面施工协议
- (2024版)包含运费与质量标准的副食购销合同
- 2024年城市道路楼体亮化工程合同
- 2024年企业广告制作及发布合同
- 2024年企业应急贷款快速审批协议
- 湿地生态池塘清淤泥方案
- 2024年分期房款支付协议
- 外来施工人员入场审核制度
- 2024年品牌代理加盟合同
- 苏教版六年级上册数学期中考试试题带答案
- 中图版2024-2025学年七年级地理上学期期中练习卷含答案
- 医院培训课件:《医疗质量安全核心制度要点解读》
- “四史”(改革开放史)学习通超星期末考试答案章节答案2024年
- 心血管内科专病数据库建设及研究
- DL-T-5161.5-2018电气装置安装工程质量检验及评定规程第5部分:电缆线路施工质量检验
- 产后康复-腹直肌分离
- MOOC 国情分析与商业设计-暨南大学 中国大学慕课答案
- 浮选工理论考试题库(浓缩400题)
- 中国联通swot分析
- 电气电缆及桥架截面计算(含各种规格电缆外径)
评论
0/150
提交评论