




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 选择程序设计,4.1 关系运算符于关系表达式,4.2 逻辑运算符于逻辑表达式,4.4 switch语句,返回,4.3 if语句,C语言程序设计教程,活着一天,就是有福气,就该珍惜。当我哭泣我没有鞋子穿的时候,我发现有人却没有脚。,C语言用三种语句控制程序的执行流程顺序结构、选择结构和循环结构。 这一章主要讲选择结构。例如计算分段函数,时,须先判断x是大于还是小于0的。这时就需要选择语句来判断。,下一页,第4章 选择程序设计,4.1 关系运算与关系表达式,关系运算就是比较运算,即将两个数据进行比较,判定两个数据是否符合给定的关系。 a b a = = b a != b,下一页,第4章 选
2、择程序设计,4.1.1 关系运算符( C语言有6种), 大于 = 大于等于 = 等于) != 不等于,六个关系运算符都是双元运算符。 关系操作数可以是:数值类型数据 字符型数据,关系运算的值,关系成立: 1 (表示逻辑真); 关系不成立: 0 (表示逻辑假)。,下一页,第4章 选择程序设计,5 3 值: 1 5 = 3 值:0 5 = 3 值:0 5 != 3 值:1,例如,4.1.2 关系表达式,1关系表达式的构成 关系运算符将两个表达式连接起来,构成关系表达式。,下一页,第4章 选择程序设计,a + b b + c 比较两个算术表达式的值 a = 2 * b 比较变量 和算术表达式的值 a
3、 b 比较两个字符的ASCII码值,2. 关系运算符的优先级,例如,1) 和 = 为同一级, = 和 != 为同一级。前者的优先级高于后者。 2)关系运算符优先级低于算术运算符。,3. 关系运算符的结合律,C语言规定关系表达式采取左结合律。表达式中出现优先级别为同一级别的运算符时,则按从左到右结合方向处理。,第4章 选择程序设计,a+b b+c 等效于 (a+b)(b+c)。 (2+a)=(b-a) 等效于2+a = b-a。,例如,int a=2,b=3,c=1; abb,值是0 , 再计算 033 ,值是1 , 再计算 12,值为 1,例如,返回,4.2 逻辑运算符和逻辑表达式,4.2.1
4、 逻辑运算符 C语言没有逻辑类型数据,逻辑运算根据数据是否为0进行判断: 数据为非0:逻辑真, 数据为0: 逻辑假; 逻辑运算值的表示: 逻辑真,值为1, 逻辑假,值为0。,下一页,第4章 选择程序设计,1逻辑非 !,逻辑非是一元运算符。 操作数值为0,逻辑非运算的结果为1(逻辑真); 当操作数值为非0时,逻辑非运算的结果为0。,下一页,第4章 选择程序设计,int a=5,b=3; !a 结果:0 !(a b) 结果:1。因为a b 的值为 0,例如,下一页,第4章 选择程序设计,2逻辑与 a 否则,计算:y=2 * x; 需要根据x的值进行流程选择(分支)。,下一页,第4章 选择程序设计,
5、4.3.1单分支选择语句,执行单分支语句时,首先先判断表达式的值若为非0则执行下面的语句若为0则跳过该语句。,下一页,第4章 选择程序设计,单分支选择语句if的形式为:if (表达式) 语句,main() float x , y; scanf(“%f ”, ,例如,4.3.2双分支选择语句,执行过程中首先先判断表达式的值若为非0则执行语句1。若为0则执行语句2,下一页,第4章 选择程序设计,例如,main() float x , y; scanf(“%f ”, ,输入两个数, 比较其大小, 将较大的数输出。,流程分析: (1) 输入两个数据a,b ; (2) 如果ab 则输出a ;否则,输出b
6、。 #include main( ) float a, b; scanf(“%f, %f”, ,下一页,第4章 选择程序设计,例如,4.3.3多分支选择语句,执行时先判断表达式1的值非0就执行下面的语句为0就执行下一个判断一直这样做下去直到得出最后结果。,下一页,第4章 选择程序设计,写一个程序完成下列功能: 1 输入一个分数score 2 score60 输出 E 3 60=score 75 输出 D 4 75=score 80 输出 C 5 80=score 90 输出 B 5 90=score 输出 A,下一页,第4章 选择程序设计,多分支问题,main( ) float score;
7、scanf(“%f”, ,下一页,第4章 选择程序设计,程序,if语句中的表达式一般为关系或逻辑表达式,也可以为任何数值类型的表达式。 执行语句可以是一条简单语句、空语句或复合语句,也可以嵌套其它流程控制语句。,复杂条件选择,输入两个字符ch1和ch2, 如果ch1=Z 且 ch2=B, 则输出“You are right ! “,下一页,第4章 选择程序设计,问题,main() char ch1,ch2; ch1=getchar( ); ch2=getchar( ); if ( ch1 = Z ,下一页,第4章 选择程序设计,程序,4.3.4 if语句的嵌套,在上述3种if语句结构中,当if
8、(表达式)或else后面的语句本身又是一个if语句结构时,就形成了if语句的嵌套结构。,下一页,第4章 选择程序设计,if 语句的二层嵌套结构如右:,if ( 表达式1) if ( 表达式1_2) 语句1_1 else 语句1_2 else if ( 表达式2_1) 语句2_1 else 语句2_2,例题4.3的分段函数可以用两层嵌套来完成:,if (x 0 时走这条分支*/ if (x=10) /*当 0 x =1 0 */ y = x-2; else /*当 10 x */ y = x/10;,下一页,第4章 选择程序设计,两层嵌套流程图,下一页,第4章 选择程序设计,if (x 0 时走
9、这条分支*/ if (x=10) /*当 0 x =1 0 */ y = x-2; else /*当 10 x */ y = x/10; 添加花括号后可以很清楚地表示出else 与外层if的配对情况。,下一页,第4章 选择程序设计,注意结构,编程实现:根据两个数sex和tall分类, 如果sex为F,当tall大于等于150时,输出” A “,否则输出 “ B “;若sex不为F, 当tall大于等于170时,输出A,否则输出B。,下一页,第4章 选择程序设计,例4.4,分析: 根据sex分支 在sex为F的分支中判断tall=150否 在sex不为F的分支中判断tall=170否,void
10、main() int tall; char sex; printf( “input sex and tall :” ); scanf( “%c %d”, ,下一页,第4章 选择程序设计,程序,条件语句,在C语言中,简单的分支选择可以用条件语句实现。 条件语句的一般形式为: ? : 条件运算符 ?, : 的含义是: 表达式1的值为真:计算表达式2, 表达式1的值为假,计算表达式3。 被计算的表达式的值作为整个表达式的值。,下一页,第4章 选择程序设计,用条件语句实现: y = x= 0为假,则y = 2*x,下一页,第4章 选择程序设计,C语言中条件运算符的优先级高于赋值运算符,但低于逻辑运算符
11、。 条件运算符要求有三个操作对象,称三目(元)运算符。 条件运算符的结合方向为“自右至左”。如条件表达式: y=x10?x/10:x0?x:-x; 从右至左结合,等价于: y=x10?x/10:(x0?x:-x); 它的功能是:当x10时,y的值为x/10; 当x0?,第4章 选择程序设计,返回,4.4 Switch语句,switch(表达式) case 常量1: 语句1; case 常量2: 语句2; case 常量3: 语句3; default: 语句4;,另一种多分支语句,根据表达式不同的值选择不同的语句。,下一页,第4章 选择程序设计,Switch语句的一般形式,语句中的表达式可以是数
12、字型或字符型,表达式的值,称为开关值。 语句结构中各个case后常量表达式的值必须互不相同;否则执行时将出现矛盾,即同一个开关值,对应多种执行方案。 当表达式的值与某一个常量相等时,就执行后面的语句;若无break语句,执行该语句后,流程控制转移到下一个分支: 继续执行这一个分支的语句,一至到最后下个语句执行完。 当表达式的值与所有常量表达式的值不相等时,执行default:后面的语句。,下一页,第4章 选择程序设计,注意,switch(i) case 1:printf(An); break; case 2:printf(Bn); break; case 3:printf(Cn) ; brea
13、k; case 4:printf(Dn); break; default:printf(En);,假设i=3时,则会从i=3时做起始语句。如果给每条语句加上break这样就只执行一条语句,CDE,下一页,第4章 选择程序设计,看下面的例子,运行结果,语句后加或不加“break;”可以使多分支变得非常灵活。如果多种情况需要共用一个执行语句,可用case的常量表达式多种情况列出,最后一种情况后,才放执行的语句。 case后面的语句可以是一条语句,也可以是复合语句,还可以是花括弧括起来的几条语句,还可以是空语句。 有多条语句时会顺序执行完所有语句。,下一页,第4章 选择程序设计,说明,编程:根据输入的学生的成绩判断等级。当成绩score 90时为 A等; 成绩70score 90 为B等; 成绩60score 70 为C等; 成绩score 60 为D等 (score 为整数)。,分析: 设score为整型数,在score90 的范围内,score可能取100, 99,.,90,利用两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广东省深圳市物理高二第二学期期末质量检测模拟试题含解析
- 湖南省衡阳市2024-2025学年高二下学期7月期末考试日语试卷(图片版含解析含音频)
- 黑龙江省齐齐哈尔市建华区2024-2025学年七年级下学期期末生物试题(含答案)
- 2025年广东省广州市白云区物理高一下期末综合测试模拟试题含解析
- 2025年广东省佛山市华南师范大学附中南海实验高级中学高一物理第二学期期末质量跟踪监视模拟试题含解析
- 2025年江苏省南通市海安县物理高一第二学期期末统考试题含解析
- 绿色农业发展技术推广服务合同
- 畜牧养殖合作及畜禽产品销售协议
- 癌痛的规范化药物治疗
- 品牌授权合作协议细节规范及条款要求
- 办公楼物业保安管理服务方案
- 游戏开发与运营合同
- 第9章屋面及防水工程
- 2024儿童身高现状报告
- 2021MAM-6070M空压机微电脑控制器
- 2024年全国高考新课标卷物理真题(含答案)
- 消防安全责任人任命书
- 毛泽东思想和中国特色社会主义理论体系概论复习提纲
- CJJT148-2010 城镇燃气加臭技术规程
- DLT 5285-2018 输变电工程架空导线(800mm以下)及地线液压压接工艺规程
- DL-T5218-2012220kV-750kV变电站设计技术规程
评论
0/150
提交评论