- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章逻辑运算和选择结构程序 4.4.2 选择结构的嵌套 4.5 条件操作符 4.6 switch 结构 4.6.1 基本的switch结构 4.6.2 有break语句的switch结构 4.7 典型例题 4.4.2 选择结构的嵌套 if结构或if-else结构中的语句可以是任意的C语句,当然也可以是被看作一条语句的if结构或if-else结构本身,出现这种情况时称之为选择结构的嵌套。 例4-12 输入成绩,若数据合法时判断成绩是否及格。 分析:当输入成绩合法(0~100)时,若成绩不小于60分则输出及格,否则输出不及格。 例4-12 例4-13 例4-13有函数:编程,输入x值,输出y值。 分析:输入x; 若x 0则y = x + 1; 否则 //意味着x 0的逻辑非,即x≥0 若x == 0则y = x; 否则 //此时 x 0为假且x == 0为假。即x 0 y = x - 1; 例4-13 例4-13的另一种算法 else的配对 使用复合语句可以影响else的配对,因为复合语句是一个封闭的整体,外面的else不会和里面的if配对。正确的代码应为: 4.5条件操作符 条件操作符?:是C语言中唯一的一个三目操作符,需要三个操作数。条件表达式的一般形式为:表达式1?表达式2:表达式3 。 确定条件表达式的值时,先要求表达式1的值,若表达式1的值是真(非0),则条件表达式的值为表达式2的值;若表达式1的值是假(0),则条件表达式的值为表达式3的值。 条件表达式可看作是简单的if-else结构的简写形式。 条件操作符的优先级 如if-else结构if(a b) max = a;else max = b; 可用条件表达式改写为 (a b)?(max = a) :(max = b)或 max =((ab)?a :b)。 条件操作符的?处有一个序列点 条件表达式i j ? ++i : ++j中,自增操作符的优先级最高,求值时会先进行自增操作吗?不会! C语言规定:条件操作符的?处有一个序列点,而序列点左边的子表达式先于右边的求值,也就是说上式中子表达式i j先求值,然后再根据i j的结果选择右边的一个子表达式求值,即++i和++j只可能有一个被执行,与相应的if-else结构执行过程相同。 条件表达式a b ? a : c d ? ++ c : ++d求值 条件操作符的结合性为右结合。条件表达式a b ? a : c d ? ++c : ++d相当于a b ? a : (c d ? ++c : ++d),但是由于序列点的存在,该表达式中右边子表达式不能先于左边子表达式a b求值。如果a = 1、b = 0、c = 2、d = 3, 则该表达式的值等于1,并且子表达式(cd ? ++c : ++d)不会被求值,表达式求值结束后a、b、c、d的值都不变。 从程序的可读性考虑,条件操作符一般只用于替换形式简单的if-else结构,最好不要嵌套。 条件表达式的值的类型 条件表达式的值的类型为子表达式2和子表达式3的类型中较高的类型。例如3 2 ? 1 : a + 2.3的值 为1.0,类型为双精度,因子表达式a + 2.3的类型为双精度高于整型。(sizeof(3 2 ? 1 : a + 2.3)等于8)。 注意:条件表达式多用于替代简单的if-else结构,其值与类型有时并不被关心。例如条件表达式 a b ?printf(%d, a) : printf(%d, b)。 例4-14求绝对值(用条件表达式改写例4-8) 4.6.1 基本的switch结构 switch结构包含一系列case标号和一个可有可无的default子句,它的一般形式为: switch的结构执行 switch结构执行时,首先计算表达式的值,然后将表达式的值依次与常量表达式的结果比较,有相等的,则从与该case语句相对应的语句序列处开始执行;没有相等的,如有default子句则从与default相对应的语句序列处开始执行,没有default子句时switch结构执行完毕此时任何语句序列都没有执行。 开始执行语句序列后将不再进行判断,位于下面的全部语句序列都将依次执行,语句序列执行完后switch结构也就执行完毕了。 执行 注意: 1.default子句和各个case标号出现的次序是任意的,即可以先写default子句,再写case标号。 2.常量表达式的值必须互不相同; 3.表达式的值一般为整型(含字符)。 例4-15写出输入b时程序的输出 4.6.2有break语句的switch结构 brea
您可能关注的文档
最近下载
- 职业技能大赛-电池制造工职业技能竞赛理论知识题库(附参考答案).docx
- 走近苏东坡ppt.ppt VIP
- 第1课时 水果店 课件 2025北师版数学三年级上册.ppt
- 2024年客户服务管理员(三级高级工)技能鉴定考试题库-上(单选、多选题汇总).docx VIP
- 失落的一角(精美版绘本).ppt VIP
- 1.1中华人民共和国成立前各种政治力量 课件(共25张ppt)(含音频+视频).pptx VIP
- 可能性(说课课件)四年级上册数学苏教版.ppt
- 计量器具、仪器日常使用点检表.xls VIP
- 食谱编制—食谱编制案例分析(食品营养与配餐课件).pptx VIP
- 2025上半年国内影视剧市场分析.pptx VIP
文档评论(0)