C语言第6章选择结构程序设计.ppt

上传人:max****ui 文档编号:6334544 上传时间:2020-02-23 格式:PPT 页数:28 大小:204KB
返回 下载 相关 举报
C语言第6章选择结构程序设计.ppt_第1页
第1页 / 共28页
C语言第6章选择结构程序设计.ppt_第2页
第2页 / 共28页
C语言第6章选择结构程序设计.ppt_第3页
第3页 / 共28页
点击查看更多>>
资源描述
教学内容 6 1if语句6 2switch语句6 3选择结构程序举例教学要求 1 掌握if语句的语法和使用方法 2 掌握switch语句的语法和使用方法 3 掌握分支语句的嵌套使用方法 第6章选择结构程序设计 例如 某一单位要给职工增加工资 它的规定是 工资低于1000元的职工 每人增加工资100元 超过1000元的职工暂不增加工资 选择条件 工资低于1000元吗 数据处理 是增加工资100元 否则不增加工资如果增加工资的规定是 工资低于1000元的职工 每人增加工资200元 超过1000元的职工增加工资100元 选择条件 工资低于1000元吗 数据处理 是增加工资200元否则增加工资100元 在C语言中 当需要根据选择条件来确定所要做 执行 哪一项数据处理的情况 这样的程序结构 被称为选择结构 在C语言中表示选择条件 一般用 关系表达式 逻辑表达式二 实现选择结构用什么语句 C语言中实现选择结构所用语句 条件分支 if语句 if else 开关分支 switch语句 switch case 在C语言中 设计选择结构程序要解决的问题 一 如何表示选择条件 1 第一种形式 1 语句格式 if 表达式 语句语句中的表达式必须用单括号 和 括起来 表达式后面语句也可使用复合语句 2 语句功能 如果表达式的值为真 T 则执行其后的语句 否则不执行该语句 在C语言中 没有逻辑型数据类型 当表达式的值为任何非零值 表示表达式的条件成立 当表达式的值为零值 表示表达式的条件不成立 6 1if语句 2 第二种形式 1 语句格式 if 表达式 语句1 else语句2 说明 else子句 可选 是if语句的一部分 必须与if配对使用 不能单独使用 2 语句功能 如果表达式的值为真 非零 则执行语句1 否则执行语句2 例6 1输入两个整数 输出其中的大数 voidmain inta b max printf ninputtwonumbers scanf d d 例6 2输入两个整数 输出其中的大数 main inta b printf inputtwonumbers scanf d d 例6 3从键盘输入两个数 按升序输出两个数 includemain floata b t scanf f f 3 第三种形式 1 语句格式if 表达式1 语句组1 elseif 表达式2 语句组2 elseif 表达式3 语句组3 elseif 表达式4 语句组4 else 语句组5 若语句组5又是一条if语句 整个语句最少是一个6个分支的多分支if语句 2 多分支if语句的执行过程 当 表达式1 的值不等于0时 则执行语句组1 然后转向下一条语句 否则 当 表达式2 的值不等于0时 执行语句组2 转向下一条语句 再否则 当 表达式3 的值不等于0时 执行语句组3 转向下一条语句 再否则 当 表达式4 的值不等于0时 执行语句组4 转向下一条语句 再否则 执行语句组5 转向下一条语句 4 if语句说明 1 在三种形式的if语句中 条件表达式通常是逻辑表达式或关系表达式 但也可以是其它表达式 如赋值表达式等 甚至也可以是一个变量 2 在if语句的三种形式中 所有的语句应为单个语句 如果要想在满足条件时执行一组 多个 语句 则必须把这一组语句用 括起来组成一个复合语句 但要注意的是在右括号 之后不能再加分号 例6 4输入 输出对应的单词 includemain charch ch getchar if ch printf plus n elseif ch printf minus n elseif ch printf multiply n elseif ch printf divide n elseprintf error n 5 if语句与条件运算符如果在条件语句中 只执行单个的赋值语句时 常可使用条件表达式来实现 不但使程序简洁 也提高了运行效率 例6 5输入任意三个整数 求三个数中的最大值 main intn1 n2 n3 max scanf d d d max n1 n2 n1 n3 n1 n3 n2 n3 n2 n3 6 if语句的嵌套与嵌套匹配原则 1 if语句嵌套 是指 在 语句1 或 和 语句2 中 又包含有if语句的情况 if语句嵌套时 else子句与在它上面 距它最近 且尚未匹配的if配对 例如 if a b s s t elseif a b t 5 语句2是if语句 elset 2 s 例6 6输入任意三个整数 求三个数中的最大值 main intn1 n2 n3 scanf d d d 例6 7if语句的嵌套使用main inta b c d x a b c 0 d 20 if a d d 10 elseif d 2 if c x 15 elsex 25 printf d d x d n d x 说明 1 if后面的 表达式 除常见的关系表达式或逻辑表达式外 也允许是其它类型的表达式 其数值可以是整型 实型 字符型 1 switch语句的一般形式switch 表达式 case常量表达式1 语句组1case常量表达式2 语句组2 case常量表达式 语句组n default 语句组n 1 表达式 可以是int char和枚举型中的一种 每个case后面 常量表达式 的值 必须各不相同 多个case子句 可共用同一语句 组 6 2switch语句 2 执行过程 1 当switch后面 表达式 的值 与某个case后面的 常量表达式 的值相同时 就执行该case后面的语句组 2 如果没有任何一个case后面的 常量表达式 的值 与 表达式 的值匹配 则执行default后面的语句 然后 再执行switch语句的下一条 case后面的常量表达式仅起语句标号作用 并不进行条件判断 系统一旦找到入口标号 就从此标号开始执行 不再进行标号判断 3 switch语句使用说明 1 在case后的各常量表达式的值不能相同 否则会出现错误 2 在case后 允许有多个语句 可以不用 括起来 3 各case和default子句的先后顺序可以随意变动 4 default子句可以省略不用 5 多个case子句 可共用同一语句 组 例6 8输出变量a的值main inta 0 i 1 switch i case0 case1 a 2 case2 case3 a 3 default a 7 printf d n a 2个case子句 共用同一语句 组 执行顺序 a 2 a 3 a 7 4 switch语句中break语句使用switch 表达式 case常量表达式1 语句组1 break case常量表达式2 语句组2 break case常量表达式 语句组n break default 语句组n 1 执行过程当switch后面 表达式 的值 与某个case后面的 常量表达式 的值相同时 就执行该case后面的语句 组 当执行到break语句时 跳出switch语句 转向执行switch语句的下一条 例6 9从键盘上输入一个百分制成绩score 按下列原则输出其等级 score 90 等级为A 80 score 90 等级为B 70 score 80 等级为C 60 score 70 等级为D score 60 等级为E main intscore grade printf Inputascore 0 100 scanf d 成绩整除10 转化case标号 switch grade case10 case9 printf grade A n break case8 printf grade B n break case7 printf grade C n break case6 printf grade D n break case5 case4 case3 case2 case1 case0 printf grade E n break default printf Thescoreisoutofrange n 程序运行情况如下 Inputascore 0 100 85 grade B 例6 10计算阶跃函数y的值 includemain floatx y printf inputx scanf f 当X 0y 1X 0y 0X 0y 1 6 3选择结构程序举例 例6 11已知某公司员工的保底薪水为500 某月所接工程的利润profit 整数 与利润提成的关系如下 计量单位 元 profit 1000没有提成 1000 profit 2000提成10 2000 profit 5000提成15 5000 profit 10000提成20 10000 profit提成25 算法设计要点 提成的变化点都是1000的整数倍 1000 2000 5000 如果将利润profit整除1000 则当 profit 1000对应0 11000 profit 2000对应1 22000 profit 5000对应2 3 4 55000 profit 10000对应5 6 7 8 9 1010000 profit对应10 11 12 为解决相邻两个区间的重叠问题 最简单的方法就是 利润profit先减1 最小增量 然后再整除1000即可 profit 1000对应01000 profit 2000对应12000 profit 5000对应2 3 45000 profit 10000对应5 6 7 8 910000 profit对应10 11 12 main longprofit intgrade floatsalary 500 printf Inputprofit scanf ld switch grade case0 break profit 1000 case1 salary profit 0 1 break case2 case3 case4 salary profit 0 15 break case5 case6 case7 case8 case9 salary profit 0 2 break default salary profit 0 25 printf salary 2f n salary 同学们再见 程序设计基础
展开阅读全文
相关资源
相关搜索

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


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

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


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