版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计教程第4章 4.1 关系运算符与关系表达式 4.2 逻辑运算符与逻辑表达式 4.3 if语句 4.4 switch语句 4.5 结构嵌套程序举例 C语言程序设计教程第4章 选择结构:选择结构:三种基本结构之一,根据所指定的条件是否三种基本结构之一,根据所指定的条件是否 满足,决定从给定的两组或两组以上操作中选一。满足,决定从给定的两组或两组以上操作中选一。 实现方式:实现方式: if (关系表达式)关系表达式) 语句语句1 else 语句语句2 例如:判定某一年是否为闰年:例如:判定某一年是否为闰年: if(y%4=0 else printf(“不是闰年不是闰年n”);); C语
2、言程序设计教程第4章 所谓所谓“关系运算关系运算”实际上就是实际上就是“比较运算比较运算”, 即将两个数据进行比较,判定两个数据是否符合即将两个数据进行比较,判定两个数据是否符合 给定的关系。给定的关系。 例如,例如,“a b”中的中的“”表示一个大于关系运表示一个大于关系运 算。如果算。如果a的值是的值是5,b的值是的值是3,则大于关系运算,则大于关系运算 “”的结果为的结果为“真真”,即条件成立;如果,即条件成立;如果a的值的值 是是2,b的值是的值是3,则大于关系运算,则大于关系运算“”的结果为的结果为 “假假”,即条件不成立。,即条件不成立。 C语言程序设计教程第4章 1关系运算符关系
3、运算符 2优先级优先级 (1)在关系运算符中,前)在关系运算符中,前4个优先级相同,后个优先级相同,后2个个 也相同,且前也相同,且前4个高于后个高于后2个。个。 例如:例如:int a=1; 表达式表达式 a=30 的值的值 真?假?真?假? (2)与其它种类运算符的优先级关系。)与其它种类运算符的优先级关系。 算术运算符算术运算符关系运算符关系运算符赋值运算符赋值运算符 例如:例如:a=81+2 a= ? 大于大于 小于小于大于等于大于等于 小于等于小于等于等于等于不等于不等于 =b (2)比较比较a+b、c+d的值的值:a+bc+d (3)比较比较a=3、b=5的值的值:a=3=b 2关
4、系表达式的值关系表达式的值逻辑值(非逻辑值(非“真真”即即“假假”)。)。 由于语言没有逻辑型数据,所以用整数由于语言没有逻辑型数据,所以用整数“”表示表示 “逻辑真逻辑真”,用整数,用整数“”表示表示“逻辑假逻辑假”。 C语言程序设计教程第4章 例如,假设例如,假设a=3,b=4,c=5,则:则: (1)ab的值为的值为0。 (2)(ab)!=c的值为的值为1。 (3)abc的值为的值为1。 (4)(ab)+c的值为的值为6,因为,因为a=0”。如果如果 需要描述需要描述“0 x=0) if(xy) z=x; x+; printf(%dn,z); 表达式表达式 语句语句 假(假(0) 真(真
5、(1) C语言程序设计教程第4章 l输入一个数,如果该数大于等于0,则输 出它的平方根,如果它小于0,则不作任 何处理。 l分析:1)需要一个变量存储输入的数, 定义一个变量x。 2)使用选择if语句来实现。 例1 C语言程序设计教程第4章 (2) 第第2种形式为种形式为 :if else ifelse语句的一般形式是语句的一般形式是: 流程图如下:流程图如下: if (表达式表达式 ) 语句语句1 else 语句语句2 如果如果“表达式表达式”为真为真,则执行语句则执行语句1; 如果如果“表达式表达式”假假,则执行则执行else后面的语句后面的语句2。 例如:例如: if(xy) z=x;
6、else z=y; 表达式表达式 语句语句1语句语句2 假(假(0) 真(真(1) C语言程序设计教程第4章 例3:输入2个数,比较大小,然后将较大的 数输出。 分析:1)需要定义2个变量a,b来存放输入 的2个数。 2)若a大于b,输出a,否则输出b。 例例2:修改例:修改例1,当输入的数小于,当输入的数小于0时,提示信息时,提示信息 错误。错误。 C语言程序设计教程第4章 (3) 第第3种形式为种形式为 ifelseif 形式形式 if else if语句的一般形式是语句的一般形式是: if(表达式表达式1) 语句语句1 else if(表达式表达式2) 语句语句2 else if(表达式
7、表达式3) 语句语句3 else if(表达式表达式n)语句)语句n else 语句语句 n+1 表达式表达式1 语句语句1语句语句2 假(假(0) 真真 1 表达式表达式2 真真 1 表达式表达式n 假(假(0) 语句语句n 语句语句n+1 0 真真 1 C语言程序设计教程第4章 例例4:根据学生成绩划分优、良、中、及格、差等级。:根据学生成绩划分优、良、中、及格、差等级。 int score; if (score=90) grade=“优优”; else if (score=80) grade=“良良”; else if (score=70) grade=“中中”; else if (sc
8、ore=60) grade=“及格及格”; else grade=“差差”; 依次判断表达式的值,当出现某个值为真时,则执行其对应依次判断表达式的值,当出现某个值为真时,则执行其对应 的语句,然后跳到整个的语句,然后跳到整个if语句之外继续执行程序;如果所有表达语句之外继续执行程序;如果所有表达 式均为假,则执行最后式均为假,则执行最后else语句语句,然后继续执行程序。然后继续执行程序。 C语言程序设计教程第4章 在在 if 语句中又包含一个或多个语句中又包含一个或多个 if 语句的情况称为语句的情况称为if语语 句的嵌套。当流程进入某个选择分支后又引出新的句的嵌套。当流程进入某个选择分支后
9、又引出新的 选择时选择时,就要用嵌套的就要用嵌套的if语句。语句。 嵌套的嵌套的if语句的一般形式是语句的一般形式是: if ( ) if ( ) 语句语句1 else 语句语句2 else if ( ) 语句语句1 else 语句语句2 内嵌if 内嵌if C语言程序设计教程第4章 例如:求例如:求a、b、c三数中的最大数三数中的最大数max。 if (ab) if(ac) max=a; else max=c; else if(bc) max=b; else max=c; C语言程序设计教程第4章 当有许多当有许多 if 和和 else 时时,如何决定哪个如何决定哪个 if 与哪个与哪个 e
10、lse 配对呢配对呢? 例如:例如: if(score60) if(score =80) printf(“优优n”); else printf(“不及格不及格); else应该与第一个应该与第一个if配对,还是第二个?配对,还是第二个? 答案是:答案是:else与第二个与第二个if配对。配对。 C语言程序设计教程第4章 else与与 if 配对的规则:配对的规则:else语句总是与在它上面、语句总是与在它上面、 距它最近、且尚未匹配的距它最近、且尚未匹配的 if 配对,除非用花括号配对,除非用花括号 表示出其它选择。如果确实希望表示出其它选择。如果确实希望else与第一个与第一个 if 匹匹
11、配,那就得加花括号。例如:配,那就得加花括号。例如: if(score60) if(score =80) printf(“优优n”); else printf(“不及格不及格); C语言程序设计教程第4章 例例4.3 有一函数:有一函数: -1 (x0) , 编写一程序,输入一个编写一程序,输入一个x,输出输出y值。值。 main() int x,y; scanf(“%d”, printf(“x=%d,y=%dn”,x,y); 请判断以下几个请判断以下几个 if 语句那个正确,那个不正确?语句那个正确,那个不正确? C语言程序设计教程第4章 if (x0) y=1; if (x=0) y=0;
12、 if (x0) y=1; if (x=0) y=0; if(x=0) if (x0) y=1; else y=0; else y=-1; y=-1; if(x!=0) if(x0) y=1; else y=0; y=0; if(x=0) if(x0) y=1; else y=-1; C语言程序设计教程第4章 if (x0) y=1; if (x=0) y=0; if (x0) y=1; if (x=0) y=0; (正确)正确) if(x=0) if (x0) y=1; else y=0; else y=-1; (正确)正确) y=-1; if (x!=0) if(x0) y=1; else
13、 y=0; y=0; if (x=0) if(x0) y=1; else y=-1; C语言程序设计教程第4章 (1)由运算符)由运算符“ ?”和和“ :”组合而成组合而成 (2)运算规则:对)运算规则:对 e1?e2 :e3 如果如果e1的值为非的值为非0(即逻辑真即逻辑真), 则运算结果等于则运算结果等于e2的值;的值; 否则,运算结果等于否则,运算结果等于e3的值的值。 (3)优先级:)优先级: 算术运算符算术运算符 关系运算符关系运算符 条件运算符条件运算符 赋值运算符赋值运算符 例如:例如: max=(ab)? a:b (a=2,b=1) max=ab? a:b max=(ab?a:
14、b)+1 max=ab?a:b+1 (4)结合性)结合性: 从右到左(即右结合性)从右到左(即右结合性) 例如例如: ab ? a:cd ? c:d (假如:假如:a=1,b=2,c=3,d=4) 从右至左结合,相当于:从右至左结合,相当于: ab ? a: ( cd ? c:d) C语言程序设计教程第4章 (5)对于)对于e2 、e3,不仅可以是算术表达式,还可以是赋值表不仅可以是算术表达式,还可以是赋值表 达式或函数表达式。例如:达式或函数表达式。例如: ab? max=a : printf(“%d”,b) 相当于:相当于: if(ab) max=a ; else printf(“%d”,
15、b) ; 完整程序:完整程序: main() int a=3,b=2 ; ab? max=a : printf(“%d”,b) ; C语言程序设计教程第4章 当程序面临多重选择时当程序面临多重选择时, ifelseif 语句能够满足需要语句能够满足需要,但在大多但在大多 数情况下数情况下, 使用使用switch语句则更为方便。语句则更为方便。 switch的一般形式:的一般形式: switch (表达式)表达式) case 常量表达式常量表达式1:语句:语句1 case 常量表达式常量表达式2:语句:语句2 case 常量表达式常量表达式n:语句语句n default:语句语句 n+1 表达式
16、可以是数值型或者表达式可以是数值型或者 字符型的,表达式的值为字符型的,表达式的值为 开关值。语句中各个开关值。语句中各个case 后面的常量表达式值必须后面的常量表达式值必须 不相同,否则将会出现矛不相同,否则将会出现矛 盾。盾。 C语言程序设计教程第4章 switch语句控制流程:语句控制流程:首先计算首先计算switch语句括号中的表达式值语句括号中的表达式值,然后依然后依 次与每一个次与每一个case中的常量进行比较,一旦发现了某个能匹配的值,就执中的常量进行比较,一旦发现了某个能匹配的值,就执 行该行该case后面的语句组,如果没有相匹配的值,则执行后面的语句组,如果没有相匹配的值,
17、则执行default后面的语后面的语 句组。执行完一个句组。执行完一个case后面的语句后,流程控制转移到下一个后面的语句后,流程控制转移到下一个case继续继续 执行。如果执行完一个执行。如果执行完一个case后面的语句后,想退出后面的语句后,想退出switch结构,可以用结构,可以用 break 语句实现。语句实现。 例如:要求按照考试成绩的等级打印出分数段。例如:要求按照考试成绩的等级打印出分数段。 switch (grade) case A :printf(“85100n”) ; case B :printf(“7084n”) ; case C :printf(“6069n”) ; case D :printf(“60n”) ; default:printf(“errorn”) ; C语言程序设计教程第4章 若若 grade的值为的值为B,则执行结果为则执行结果为 : 7084 6069 60 error 因此因此,应该在每
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 景区食品安全责任制度
- 支付结算岗位责任制度
- 思政课建设主体责任制度
- 彩票店安全生产责任制度
- 学校集中就餐责任制度
- 社区居委会首问责任制度
- 冷库搬运工岗位责任制度
- 内勤数据核查责任制度
- 企业安全员职业责任制度
- 安全监察科长责任制度
- 艺考培训专业讲解
- 核医学科放射性废物处置的运输路线规划方案模板
- (正式版)DB42∕T 2465-2025 《钢滑道顶升技术规程》
- 施工质量成本管控计划方案
- 科研项目伦理审批知情同意书模板
- 中国人民银行面试真题100题及答案解析
- DB32∕T 5167-2025 超低能耗建筑技术规程
- TCSTM00640-2022烤炉用耐高温粉末涂料
- 2026年湖南商务职业技术学院单招职业技能测试必刷测试卷及答案1套
- 物业强电系统培训
- 《毕业论文》课程教学大纲(本科)
评论
0/150
提交评论