




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 选择结构,张涵,回顾:,1、什么是输入? 2、什么是输出? 3、输入的命令是什么? 4、输出的命令是什么? 5、输出一个如下结果:例:已知a=3.1415927;保留3位小数,前面带2空格的。,目标,熟练使用关系运算符 熟练使用逻辑运算符 熟练使用多重 if 结构 熟练使用嵌套 if 结构 熟练使用 switch 结构 理解条件运算符的用法,4.1 关系运算和逻辑运算,一、C语言中的逻辑值 语言中规定: (1)用0、1 表示逻辑假和真值;语言没有专门的逻辑值,而是用来表示“真”,用表示“假”。 (2)任何基本类型的值都可作为逻辑值使用。所有非0的值被当作“真”使用,而0值被当作“假”使
2、用,注意:当x、y为实型数据 尽量避免使用 x=y,1号椅子上是否有人?,1,0,假设椅子上有多个人,关系运算符,!=,=,=,=,操作数1,操作数2,其中 可以是变量、常量或表达式。,二、关系运算符和关系表达式 1.C语言的关系运算符共种: (大于)= (大于等于) (小于)= (小于等于) = (等于) != (不等于),优先级: 前四种优先级高于后两种 算术关系赋值 结合方法:从左向右结合,2 关系表达式及其值(0、1) int a=3,b=5,c=1; a=b 值为0 (a=3)(b=4) 值为0 ac=c 值为1,三 逻辑运算符和逻辑表达式,优先级:!算术关系 a+ a+| b+,首
3、先计算a+的值为0,即0 printf(n请输入两个数:); scanf(%d %d, ,简单if语句的示例,56,78,134,请输入两个数:56 78,两数的和大于 100,#include void main() int num; printf(n请输入一个整数:); scanf (%d, ,if-else语句的示例,57,请输入一个整数:57,57 是一个奇数。,多重if,要处理多重条件判断的情况,需要使用多重条件结构,3.多重条件结构,嵌套 if,switch结构,if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; . . e
4、lse 语句n;,多重 if 结构是if-else 的另一种形式 ,这种形式也称为阶梯式 if-else-if,多重 if 结构,真,假,真,假,真,假,多重 if 结构示例,问题描述: 编写一个程序,根据用户输入的期末考试成绩,输出相应的成绩评定信息。成绩大于等于90分输出“优”;成绩大于等于80分小于90分输出“良”;成绩大于等于60分小于80分输出“中”;成绩小于60分输出“差”。,#include void main() float grade; printf(n 请输入期末考试成绩: ); scanf(%f, ,59,请输入期末考试成绩:59,差,嵌套 if 结构就是将整个 if 块
5、插入另一个 if 块中,嵌套 if 结构,1.在if子句中嵌套具有else子句的if语句,if (表达式1) if(表达式2)语句1 else 语句2 else 语句3,#include void main() int a,b; printf(n 请输入 a 和 b 的值: ); scanf(%d%d, ,嵌套 if 结构的示例,68,93,输出: ab,嵌套 if 结构,2.在if子句中嵌套不含else子句的if语句,if (表达式1) if(表达式2)语句1 else 语句2,C语言规定,每个 else 部分总属于前面最近的那个缺少对应的 else 部分的 if 语句。 提倡使用大括号括起
6、来以避免看起来有二义性。,if (表达式1) if(表达式2)语句1 else 语句2,去掉大括号后,习题 4.5 4.8 4.7 4.19,3. 在else子句中嵌套if语句(不会出现二义性,建议使用),switch 结构,printf(“这是懒羊羊,我最爱吃零食”);,printf(“这是红太狼,小心我的平底锅”);,printf(“这是灰太狼,我一定会回来的”);,default:,printf(“未发现匹配项。对不起!”);,停止搜索,停止搜索,停止搜索,停止搜索,资料库,不是,不是,是,4.3 用switch语句实现多分支选择结构,实际问题:常常需要用到多分支的选择,例如,学生成绩的
7、优、良、中、差;人口统计分类老、中、青、少、儿童等 。,switch语句的一般形式:,switch (表达式) case 常量表达式: 语句 case 常量表达式: 语句 case 常量表达式: 语句 default: 语句 ,switch 结构示例,问题描述: 要求用户输入一个字符值并检查它是否为元音字母。,char in_char; printf(n 请输入一个小写字母: ); scanf(%c, ,e,请输入一个小写字母:e,您输入的是元音字母 e,多重if结构和switch结构都可以用来实现多路分支 多重if结构用来实现两路、三路分支比较方便,而switch结构实现三路以上分支比较方便
8、 在使用switch结构时,应注意分支条件要求是整型表达式,而且case语句后面必须是常量表达式 有些问题只能使用多重if结构来实现,例如要判断一个值是否处在某个区间的情况,比较多重 if 和 switch 结构,示例2,问题描述: 编写一个简单的计算器,实现两个整型数的四则运算。,int a,b;char op; printf(n 输入操作数1,运算符,操作数2: ); scanf(%d,%c,%d, ,输入操作数1,运算符,操作数2:45,*,2,452 = 90,45,2,*,4.4 条件表达式构成的选择结构,?,?,条件表达式,考试是 否及格?,是,不是,真,表达式 1,假,表达式 2
9、,条件运算符,if (num100) value=50; else value=100; ,使用“if-else”的等同代码,假设 num = 200,value = num 100,;,?,50,:,100,200,value,=,50,说明: 1.结合方向为 自右向左 2.! 算术 关系 逻辑与 double rate; printf(n 请输入基本工资:); scanf(%lf, ,请输入基本工资:1500,税后工资为:1475.00,总 结,多重if结构就是在主if块的else部分中还包含其他if块 嵌套if结构是在主if块中还包含另一个if 语句 C语言规定,嵌套if结构中每个else部分总是属于前面最近的那个缺少对应的else部分的if语句 switch结构也可以用于多分支选择。用于分支条件是整型表达式,而且判断该整型表达式的值是否等于某些值(可以罗列的),然后根据不同的情况,执行不同的操作 条件运算符是 ifelse 语句的另一种表现形式,写出下面逻辑表达式的值已知a=3,b=4,c=5; 1、a+bc&b=c 2、a|b+c&b-c 3、!(ab)&c|1,答案:1、0 2、1 3、1,解题思想:1、&一面为假就为假,那么b=c(很容易判断出来)2、3、 2题和3题中,只要知道|的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度商铺租赁合同范本:商铺租赁合同法律适用
- 二零二五年度环保包装袋加工与环保理念传播合同
- 2025年度水利工程安全生产协议书范本
- 2025版新能源汽车销售区域独家代理合同协议书
- 2025版仓储运输合同安全监管范本
- 2025版电子产品包装袋设计与生产合同
- 2025版办公场地租赁合同-含企业专属会议室及培训室
- 二零二五年VIP客户专属定制化服务与权益协议
- 2025版纸箱包装研发与生产采购合同
- 现代农业灌溉工程实施协议
- 2024-2025学年北京版八年级数学下学期期末模拟卷(含答案)
- 2024年宜宾市叙州区区内外选调在编在职教师笔试真题
- 2025年高考真题-政治(云南卷) 含解析
- 老年康复护理教学课件
- 2024年许昌禹州市选调农村义务教育阶段学校在编教师笔试真题
- 赣州厚外小升初数学试卷
- 2025年广东省中考英语试题(附答案)
- 2024年广东省烟草专卖局系统招聘考试真题及答案
- 社区网格员(综合治理)笔试试题及答案
- 餐饮革新与市场机遇
- 2025至2030浮式储油卸油装置(FSO)行业发展趋势分析与未来投资战略咨询研究报告
评论
0/150
提交评论