chap分支结构课件

上传人:s9****2 文档编号:592678047 上传时间:2024-09-22 格式:PPT 页数:31 大小:151.50KB
返回 下载 相关 举报
chap分支结构课件_第1页
第1页 / 共31页
chap分支结构课件_第2页
第2页 / 共31页
chap分支结构课件_第3页
第3页 / 共31页
chap分支结构课件_第4页
第4页 / 共31页
chap分支结构课件_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《chap分支结构课件》由会员分享,可在线阅读,更多相关《chap分支结构课件(31页珍藏版)》请在金锄头文库上搜索。

1、Chap3分支结构分支结构chap分支结构语句语句n常见的常见的C语句语句:选择选择:ifswitch循环循环: while,do,andfor跳转跳转: break,continue,goto,returnn其他其他C语句语句:复合语句复合语句空语句空语句;2chap分支结构逻辑表达式逻辑表达式n一些一些C语句需要检查表达式的值是语句需要检查表达式的值是“true”or“false.”如如if(ij)n在其他编程语言里在其他编程语言里会使用布尔类型或逻辑会使用布尔类型或逻辑类型类型nC的逻辑表达式只返回数字的逻辑表达式只返回数字:0(false)or1(true).3chap分支结构关系运算

2、符关系运算符nC的关系运算符的关系运算符:greaterthan= greaterthanorequalton关系运算符优先级低于算术运算符关系运算符优先级低于算术运算符i+jk-1相当于相当于(i+j)(k-1).n关系运算符是左结合的关系运算符是左结合的4chap分支结构关系运算符关系运算符n表达式表达式i j k是否合法是否合法,返回返回j是否在是否在i,k之之间间?n表达式表达式 i j k 相当于相当于(i j) k先先检测检测i j返回返回0或或1再用再用0或或1与与k比比较较n返回返回j是否在是否在i,k之之间间:ij&jk.5chap分支结构判等运算符判等运算符nC判等运算符判

3、等运算符:= equalto!= notequalton返回返回0(false)or1(true)n判等运算符优先级低于关系运算符判等运算符优先级低于关系运算符i j = j k相当于相当于(i j) = (j 1)&(y1)(x1)|(y1)(x1)!(x1)即即x=1逻辑运算符的含义逻辑运算符的含义chap分支结构逻辑运算符的功能逻辑运算符的功能逻辑与逻辑与&逻辑或逻辑或|逻辑非逻辑非!aba&ba|b!a假假假假假假假假真真假假真真假假真真真真真真假假假假真真假假真真真真真真真真假假chap分支结构逻辑运算符逻辑运算符nC 通过逻辑运算符构建复杂的逻辑表达式通过逻辑运算符构建复杂的逻辑表

4、达式:!logicalnegation&logicaland|logicalorn!是一元运算符,是一元运算符,&和和|是二元运算符是二元运算符.n!优优先先级级与正与正负负号相同号相同n&和和|的优先级低于关系运算符和判等运算符的优先级低于关系运算符和判等运算符ij&k=m相当于相当于(i 0)i 0 & +j 010chap分支结构if语句语句nif语句允许程序通过测试表达式的值从两种语句允许程序通过测试表达式的值从两种选项中选择一种选项中选择一种nif语句的最简单格式语句的最简单格式if ( 表达式表达式 ) 语语句句;n执行执行if语句时,先计算圆括号内表达式的值,语句时,先计算圆括号

5、内表达式的值,如果非零,那么执行后续语句如果非零,那么执行后续语句n常见错误是混淆常见错误是混淆=和和=if (i = 0) if (i = 0) 11chap分支结构if语句语句nif 语语句也常用于判定句也常用于判定变变量是否落在某个数量是否落在某个数值值范范围围中中n判定判定0 in:if (0 = i & i n) n判定相反情况判定相反情况:if (i = n) 12chap分支结构二分支结构和基本的二分支结构和基本的if语句语句if(表达式)语句1else语句2if(表达式)语句1语句语句1表达式表达式语句语句2真真假假语句语句1表达式表达式真真假假一条语句一条语句chap分支结构

6、复合语句复合语句n如下如下if语句模板中,语句是一条而非多条语句模板中,语句是一条而非多条:if ( expression ) statementn如果想让如果想让if语句处理多条语句,需使用复合语句语句处理多条语句,需使用复合语句. 多条多条语语句句 n内部语句仍然以分号结尾内部语句仍然以分号结尾if (line_num = MAX_LINES) line_num = 0; page_num+;n在在语语法上要求用一条法上要求用一条语语句的地方都可以用复合句的地方都可以用复合语语句句14chap分支结构else子句子句nif语句可以附带语句可以附带else子句子句:if ( 表达式表达式 )

7、 语语句句 else 语句语句n如如( 表达式表达式 ) 的的值为值为0,就,就执执行行else 语句语句nExample:if (i j) max = i;else max = j;n也可以也可以缩进缩进写写为为 if (i j) max = i;else max = j;15chap分支结构else子句子句n嵌套嵌套if语句语句:if (i j) if (i k) max = i; else max = k;else if (j k) max = j; else max = k;假假表达式表达式1表达式表达式2语句语句1语句语句2语句语句n-1语句语句n真真表达式表达式n-1真真假假真真假

8、假假假n个分支需要个分支需要n-1次比较次比较16chap分支结构else子句子句n每个每个else与离它最近的与离它最近的if匹配匹配n为了避免出错,尽量添加为了避免出错,尽量添加:if (i j) if (i k) max = i; else max = k; else if (j k) max = j; else max = k;17chap分支结构编程编程:计算股票经纪人佣金计算股票经纪人佣金n美国股票采用经纪人来进行买卖,经纪人的佣金根据股票交易美国股票采用经纪人来进行买卖,经纪人的佣金根据股票交易额以某种变化的比例进行计算额以某种变化的比例进行计算n假设有如下费用表,请设计程序要求

9、用户录入交易额,然后显假设有如下费用表,请设计程序要求用户录入交易额,然后显示出佣金数额示出佣金数额:交易额范围交易额范围 佣金费用佣金费用Under$2,500$30+1.7%$2,500$6,250$56+0.66%$6,250$20,000$76+0.34%$20,000$50,000$100+0.22%$50,000$500,000$155+0.11%Over$500,000$255+0.09%n最低收费最低收费$39.01.c18chap分支结构条件表达式条件表达式n条件运算符由符号条件运算符由符号?和符号和符号:组成组成,是,是C运算符中唯一运算符中唯一的三元运算符的三元运算符n条

10、件表达式:条件表达式:(条件)?表达式条件)?表达式1:表达式:表达式2n读为:如果读为:如果条件条件成立,那么表达式成立,那么表达式1,否则表达式,否则表达式2nExample:int i, j, k; i = 1;j = 2;k = i j ? i : j; /* k is now 2 */k = (i = 0 ? i : 0) + j;/* k is now 3 */19chap分支结构条件表达式条件表达式n条件表达式使程序更短小、清晰,是重要条件表达式使程序更短小、清晰,是重要的的C语言技巧语言技巧.n经常在经常在return语句中使用语句中使用:return i j ? i : j;

11、n在在printf等函数中使用等函数中使用if (i j) printf(%dn, i);else printf(%dn, j);如上代码简写为如上代码简写为printf(%dn, i j ? i : j);20chap分支结构switch语句语句n级联级联式式 if语句根据成绩的等级显示相应的评语语句根据成绩的等级显示相应的评语if (grade = 4) printf(Excellent);else if (grade = 3) printf(Good);else if (grade = 2) printf(Average);else if (grade = 1) printf(Poor)

12、;else if (grade = 0) printf(Failing);else printf(Illegal grade);21chap分支结构switch语句: switch(整数整数表达式)/表达式只能为字符、数字、枚举 case value1: 语句1; break; case value2: 语句2; break; default: 语句n; 等价于:等价于: if(整数表达式整数表达式=value1) 语句语句1; else if(整数表达式整数表达式=value2) 语句语句2; else 语句语句n; switch语句语句00:02:2222chap分支结构表达式的值表达式的

13、值=常量表达式常量表达式 2 的值的值表表达达式式语句段语句段1语句段语句段2语句段语句段n语句段语句段n+1表达式的值表达式的值=常量表达式常量表达式 1 的值的值表达式的值表达式的值=常量表达式常量表达式 n 的值的值其他其他breakbreakbreakbreakswitch语句语句chap分支结构switch语语句句n用用switch语句来替代:语句来替代:switch (grade) case 4: printf(Excellent); break; case 3: printf(Good); break; case 2: printf(Average); break; case 1

14、: printf(Poor); break; case 0: printf(Failing); break; default: printf(Illegal grade); break;nswitch 语语句可句可读读性更好性更好.nswitch 语语句句执执行效率通常更高行效率通常更高24chap分支结构switch 语语句注意事句注意事项项ncase 语语句不能重复句不能重复ncase 语语句的句的顺顺序没有要求序没有要求ndefault 默默认认放在最后,但不放在最后,但不强强制制n多个多个case 标标号可以放置在同一号可以放置在同一组语组语句前面句前面switch (grade) c

15、ase 4: case 3: case 2: case 1: printf(Passing); break; case 0: printf(Failing); break; default: printf(Illegal grade); break;25chap分支结构switch 语语句注意事句注意事项项n为节省空间,可以把几个分支标号写在同一行为节省空间,可以把几个分支标号写在同一行:switch (grade) case 4: case 3: case 2: case 1: printf(Passing); break; case 0: printf(Failing); break; d

16、efault: printf(Illegal grade); break;ncase分支标号只是一个说明分支标号只是一个说明switch内部位置的标记内部位置的标记n不要忘记用不要忘记用break来跳出来跳出switch语句语句n不要求一定有不要求一定有default分支。分支。26chap分支结构在在switch中不使用中不使用breakswitch(表达式表达式)case常量表达式常量表达式1:语句段:语句段1;case常量表达式常量表达式2:语句段:语句段2;.case常量表达式常量表达式n:语句段:语句段n;default:语句段语句段n+1;chap分支结构switch(表达式表达式

17、)case常量表达式常量表达式1:语句段:语句段1;case常量表达式常量表达式2:语句段:语句段2;.case常量表达式常量表达式n:语句段:语句段n;default:语句段语句段n+1;switch(choice)case1:price=3.0;case2:price=2.5;case3:price=4.0;case4:price=3.5;default:price=0.0;表达式的值表达式的值=常量表达式常量表达式 2 的值的值表表达达式式语句段语句段1语句段语句段2语句段语句段n语句段语句段n+1表达式表达式的值的值= =常量表达式常量表达式 1 的值的值表达式的值表达式的值=常量表达

18、式常量表达式 n 的值的值其他其他price=?chap分支结构忘记忘记break的例子的例子nExample:switch (grade) case 4: printf(Excellent); case 3: printf(Good); case 2: printf(Average); case 1: printf(Poor); case 0: printf(Failing); default: printf(Illegal grade);n假如假如grade值为值为3,返回结果返回结果GoodAveragePoorFailingIllegal grade29chap分支结构故意省略故意省略

19、break的例子的例子switch (grade) case 4: case 3: case 2: case 1: num_passing+; /* FALL THROUGH */ case 0: total_grades+; break;n记得加注释,明确说明故意省略记得加注释,明确说明故意省略n最后一个分支其实可以不加最后一个分支其实可以不加break,但通常会加但通常会加break,让代码更整齐,防止将来增加让代码更整齐,防止将来增加case时漏掉时漏掉break30chap分支结构编程编程:显示法定格式的日期显示法定格式的日期n英文合同和其他法律文档经常使用下列日期格式:英文合同和其他法律文档经常使用下列日期格式:Dated this _ day of _ , 20_ .n实现如下输入输出实现如下输入输出:Enter date (mm/dd/yy): 7/19/14Dated this 19th day of July, 2014.n为日添加为日添加“th”(or“st”or“nd”or“rd”)后缀后缀n用单词来代替月份用单词来代替月份02.c31chap分支结构

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号