




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 选择结构程序设计,Follow me!,5.1 关系运算符和关系表达式,1. 关系运算符及其优先次序 语言中的关系运算符有种: 、=、(等于)、!(不等于) 关系运算符都是双目运算符,其结合性均为左结合。 运算优先次序: 1.在6种关系运算符中,前种同级,高于后种(后种同级) 例如: x != y、 s - db+c bd、a= = bc 等价于 (bd)=c,2.关系运算符的优先级低于算术运算符,高于赋值运算符。 算术运算符 (高) 关系运算符 赋值运算符 (低),2. 关系表达式 用关系运算符将两个表达式连接起来的式子。 如:(ab)(by 、s+fd 关系表达式的值是一个逻辑值(
2、真或假),但语言没有逻辑型数据,关系表达式的真、假是以 数值1和0表示。“”代表“真”,以“”代表“假”。 例: a=3, b=2, c=1 则 cb; 0 (a-b) = = 1; 1 b+cbc; (自左至右 )f=0,逻辑运算符及其优先次序 C语言提供三种逻辑运算符: ,5.3 if 语句,3. if (表达式) 语句 1 (多分支) else if(表达式2) 语句 2 else if(表达式3) 语句 3 else if(表达式m) 语句 m else 语句 n,2. if (表达式) 语句 else 语句 2 (双分支) 如: if(xy) printf(“ %d ”, x); e
3、lse printf(“%d”,y);,如: If (x=90)y=1; else if (x=80)y=2; Else if (x=60)y=3; Else y=0;,说明: (1)条件表达式必须用圆括号括起来。 (2)条件表达式可以逻辑表达式或关系表达式,也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量 。 如:if (b) printf(“%dn”,x); (3)else子句不能单独使用,必须配合if语句使用。 (4)if和else后均可放置复合语句。 复合语句是用括起来的多个C语句。 例:由小到大输出两个数。 Main() Float a,b,t; Scanf(“%f,%f”,
4、a,b); If (ab) t=a;a=b;b=t; Printf(“%5.2f,%5.2fn”,a,b);,复合语句,2. if 语句的嵌套 if ( ) if ( ) 语句 else 语句 else if ( ) 语句 else 语句 这里,else总是与最近的未配对的if配对。 把内嵌的语句写在中不容易出错,#include main( ) int numb1, sign; printf(“Please input an numbern”); scanf(“%d”,例:求,开始,Numb10?,结束,打印numb1,输入numb1,Y,N,N,Sign=-1,Numb1=0?,Sign=
5、1,Sign=0,Y,见书95页其它几种写法!,3. 条件运算符及其表达式 条件运算符为?和:,是一个三目运算符,有三个参与运算的量。 一般形式:表达式1? 表达式2: 表达式3 求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中,表达式的值真、假时都执行赋值语句,且均赋给同一变量。 例如:由条件语句: if(ab) max=a;else max=b; 执行该语句的语义是:如ab为真,则把a赋予max,否则把b 赋予max。,max=(ab)?a:b;,写成,使用条件表达式时,注意: 1. 条件运算
6、符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此 max=(ab)?a:b可以去掉括号而写为 max=ab?a:b 2. 条件运算符?和:是一对运算符,不能分开单独使用。 3. 条件运算符的结合方向是自右至左。 ab?a:cd?c:d应理解为ab?a:(cd?c:d) 4.条件表达式中的三个表达式的数据类型可以不同。如x ? a : b 。表达式的类型取表达式2和表达式3中类型较高者。(int和float,取float),例:输入一个字符,判别它是否是大写字母。是,将它转成小写字母;不是,不转换。最后输出结果。 #include “stdio.h” void main() char
7、 ch; scanf (“%c”, ,语言还提供了另一种用于多分支选择的switch语句 一般形式为: switch(表达式) case 常量表达式1: 语句1; case 常量表达式2: 语句2; case 常量表达式n: 语句n; default : 语句n+1; 语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。 如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。,5.4 switch 语句,例:比较下面两段程序 void main()
8、 int a;printf(input integer number: );scanf(%d,void main() int a;printf(input integer number: );scanf(%d,Break语句: 专用于跳出switch语句,只有关键字break,没有参数。,使用switch语句时还应注意: 1.在case后的各常量表达式的值不能相同,否则会出现错误。2.在case后,允许有多个语句,可以不用括起来。3.各case和default子句的先后顺序可以变动,而不会影响程序执行结果。4.default子句可以省略不用。 5. 多个case可以共用一组执行语句。 case
9、 A: case B: case C:printf(“60n”); break;,5.5 程序举例,#include “stdio.h” void main() int year, leap; scanf(“%d”, ,例1:写出判断某年是否闰年的程序。条件为下面之一: (1)能被4整除,但不能被100整除; (2)能被4整除,又能被400整除。,void main() int a,b,c,max,min; printf(input three numbers: ); scanf(%d%d%d,例2:输入三个整数,输出最大数和最小数。,#include “stdio.h” void main() int c, s; float p, w, d, f; scanf (“%f, %f, %d”, ,例3:运输公司计算用户运费。其中:S路程,p基本运费,w货重,d折扣。 S250km 无折扣 250s500 2%折扣 500 s1000 5%折扣 1000 s2000 8%折扣 2000 s3000 10%折扣 300
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电子商务专员招聘笔试真题及答案
- 2024-2025学年新疆哈密十五中高一(下)期末数学试卷(含解析)
- 2025年新刑法学2试题及答案
- 2025年家禽学试题及答案
- 2025年攻城掠地试题及答案
- 2025年中医科技师面试题及答案
- 2025年抗疫志愿者面试题及答案
- 2025年面试题及答案幼升小
- 2025年小朋友潜力测试题及答案
- 2025年京东运营考试题及答案
- 新版城市居住区规划设计规范
- 供应商往来对账确认函(财务文书模板)
- GB/T 778.1-2018饮用冷水水表和热水水表第1部分:计量要求和技术要求
- GB/T 6725-2017冷弯型钢通用技术要求
- 2022年泰安市文化和旅游系统事业单位招聘笔试试题及答案
- 氮化硼产业园项目申请报告
- ISO9001新产品研发控制程序
- 防台风、暴雨应急预案
- 提高口服药准确服用率品管圈ppt课件
- 市政工程类建筑施工项目危险源辨识及风险管控清单
- MSA-测量系统分析GRR
评论
0/150
提交评论