C语言课件-第4章选择分支结构程序设计.ppt

上传人:max****ui 文档编号:6335081 上传时间:2020-02-23 格式:PPT 页数:28 大小:488.81KB
返回 下载 相关 举报
C语言课件-第4章选择分支结构程序设计.ppt_第1页
第1页 / 共28页
C语言课件-第4章选择分支结构程序设计.ppt_第2页
第2页 / 共28页
C语言课件-第4章选择分支结构程序设计.ppt_第3页
第3页 / 共28页
点击查看更多>>
资源描述
主要内容 关系运算 逻辑运算 二路和多路分支 选择结构 根据条件决定执行二路或多路分支中的一路 二路分支if else 语句多路分支switch语句 第4章选择分支结构程序设计 例 从键盘上输入x y z三个整形变量 输出其中的最小值 includemain intx y z min scanf d d d 举例 条件 是关系表达式或逻辑表达式 值为逻辑值 真或假 C语言用1表示真 用0表示假 判断时非0为真 4 1关系运算符和关系表达式 大于 大于等于 小于 小于等于 等于 不等于 关系运算符 说明 1 六个关系运算符都是双目运算符 如 inta 2 b 3 a100结果为假 运算对象为字符数据时 比较按其ASCII码进行如 表达式 a b 值为假 5 与数学表达式的区别 如 3 x 100数学解释 判断x是否在区间 3 100 之内C语言解释 按从左向右的次序进行计算若x 0先计算 3 x 得值0 再计算 0 100 得值1整个表达式结果为1 3 关系表达式的值可以作为整数值参与运算 4 优先级次序 算术运算符 关系运算符 赋值运算符 要表示判断x是否在区间 3 100 之内 3 x 100 可以用逻辑运算符 连接两个关系表达式来表示 用逻辑运算符连接两个运算对象形成逻辑表达式 如 3 x x 100在C语言中有三个逻辑运算符 逻辑与 逻辑或 逻辑非意义 a b当a和b同时为真时 表达式的值为真 a b当a和b之一为真时 表达式的值为真 a当a的值为真 则表达式的值为假 4 2逻辑运算符与逻辑表达式 说明 1 和 是双目运算符 是单目运算符 2 和 的运算级别低于关系运算符 的运算级别高于关系运算符和算术运算符 注意 的结合方向是从右向左 和 的结合方向是从左向右 3 不能确定的情况下 添加括号保证运算次序 尽量避免复杂烦琐的逻辑表达式 优先顺序 算术运算 赋值运算 4 参加逻辑运算的运算对象可以是0 假 或任何非0的数值 真 但运算后的结果和关系运算的结果一样 只能是逻辑值0和1 C语言无专门的逻辑类型 其它类型的数据也可以参与逻辑运算 在判别时 非0 作为 真 0 作为 假 5 在逻辑表达式的求解中 并不是所有的逻辑运算符都被执行 只有在必须执行下一个逻辑运算符才能求出表达式的解时 才执行该运算符 例 intx 1 执行了 x x x后 x的值是 x 1 例若a 0 b 0 5 x 0 3 则a x b的值为0 例 a 0结果为1 A 100结果为0 例注意区分 与 的差别inta 0 b 1 if a b printf aequaltob elseprintf anotequaltob 例应避免对实数作相等或不等的判断如1 0 3 0 3 0 1 0结果为0可改写为 fabs 1 0 3 0 3 0 1 0 1e 6 关系运算注意 1 if else语句形式 if 表达式 语句1else语句2执行流程 如果表达式值非0 执行语句1 否则 执行语句2 无论执行了哪一路分支之后 都执行if的下一条语句 例if x y max x elsemax y 4 3二路分支 if语句 简单if语句 语句形式 if 表达式 语句 执行过程 如果表达式值非0 执行该语句 然后执行if的下一个语句 否则直接执行if的下一个语句 例 main inta b max printf n请输入两个数 scanf d d 4 3二路分支 if语句 例 输入三个整数x y z 把这三个数由小到大输出 includemain intx y z t printf Pleaseinputthex y z scanf d d d if else语句 语句形式 if 表达式 语句1 else语句2 执行流程 如果表达式值非0 执行语句1 否则 执行语句2 无论执行了哪一路分支之后 都执行if的下一条语句 例if x y max x elsemax y printf max d max 例 判断给定的某一年是否是闰年 分析 如果某年能被4整除而不能被100整除 或者能被400整除 那么该年就是闰年 否则就是平年 if year 4 0 year 100 0 year 400 0 includemain intyear leap 0 printf n请输入年份 yyyy scanf d if else if形式语句形式 if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 elseif 表达式m 语句m else语句n 例 main floatx y printf Inputx scanf f 若将if语句改为 if x 1 y x elseif 1 x 10 y 2 x 1 elsey 5 x 17 在x 10时y值错误因1 x 10永为真 分析 根据输入字符的ASCII码来判别类型 例 编写程序 要求判别键盘输入字符的类别 include stdio h main charc printf nPleaseinputacharacter n c getchar if c 0 说明 1 三种形式的if语句中都出现的 表达式 不仅只限于逻辑和关系表达式 还可以是任何类型的 2 if语句中 判断条件表达式必须用 括起来 条件后面不加分号 但语句之后有分号 4 if和else后的语句可以只有一条 也可以使用 包括的几条语句构成的复合语句 3 else不是语句 不能单独使用 与if配对使用 5 if x if x 0 6 if x if x 0 例考虑下面程序的输出结果 includemain intx y t scanf d d CompileError if语句的嵌套 在if语句中 if 表达式 语句1else语句2语句1和语句2都可以是另外一条if语句 if 表达式1 if 表达式2 语句1else语句2elseif 表达式3 语句3else语句4 if 表达式1 语句1elseif 表达式2 语句2else语句3 if 表达式1 if 表达式2 语句1else语句2else语句3 说明 1 else总是与最近的if匹配 2 else不能单独出现 总是与if配对使用 main intx 2 y 1 z 2 if x y if y 0 z 0 elsez 1 printf z d n z z 2 编写原则 1 顺序执行的语句对齐 2 选择体向内缩进3 4字符 3 若选择体内嵌套if语句 则该if语句的选择体亦继续向内缩进 4 若选择体内的语句多于1条 则必须使用 括起来 5 原则上 选择体内只有一条语句时 可以不使用 括起来 但如果该语句分成多行编写时 则使用 具有更强的可读性 main if a b if c d else 条件表达式 实现简单的二路分支结构 格式 表达式1 表达式2 表达式3是C语言中唯一的三目运算符 它要求三个运算对象 表达式1 一般为逻辑表达式意义 如果表达式1非0 此表达式取表达式2的值如果表达式1为0 此取表达式3的值 如 max a b a b 例 a b Y N x 2 1 1 0 x 0 x x c a c z c a A c 4 4条件运算符和表达式 形式 switch 表达式 case常量1 语句序列1 break case常量2 语句序列2 break case常量n 语句序列n break default 语句序列n 1 4 5多路分支 Switch语句 switch语句的执行过程是 首先计算表达式的值 若该值与某个case后面的常量相等 则执行其后的语句序列 遇到break语句时 跳出switch语句 如果表达式的值与所有常量都不相等 若存在default则执行其后的语句序列 否则什么也不做 说明 1 switch语句中的表达式可以为任何类型 一般为整型或字符型 相应地常量的类型应与其相同 2 同一switch语句的各case常量值 必须互不相同 3 多个case常量可以共用一组执行语句 但常量应该分开来写 不能写在同一case语句中 case A case B case C printf example n break 3 case常量相当于语句标号 执行switch语句时 找到与表达式值相等的某case常量 从此标号开始执行下去 对以后的标号不再比较 直到 为止 一般应该在每个case后的语句序列跟一个break语句以便跳出switch正确实现多分支 可认为break语句是case中的一部分 if语句和switch语句之间也可以互相嵌套 例3 14键盘输入百分制成绩 输出相应的分数等级 规则为 90 100A80 89B70 79C60 69D60以下E显然 用if语句实现这个多路选择结构 需要多个if语句嵌套或并列实现 而用switch语句来处理比较简单 关键点在于 switch表达式的构造 要使某分数段的成绩经过表达式的计算都与某整数相等 很容易想到的方法是 缩小10倍再取整 includemain floatscore printf Inputscore scanf f 低于60的成绩 作业 P77 4 1 4 2 4 7
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!