- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
033-分支结构程序的设计
分支结构程序的设计 主要内容 if语句 switch 语句 C语言中支持分支结构的语句包括: if…else语句 if…else if…else语句(多分支结构) switch语句(多分支结构) 一、if…else语句 格式: if (测试表达式) 语句1; [else 语句2;] 功能: 如果表达式值为1或非0值(真),则执行语句1;否则执行语句2。 流程图 例:求一个数的绝对值。 …… if (x=0) y=x; else y=-x; 例:输入两个实数,输出其中最小的。 float x, y, z; scanf(%f%f, x , y); if (xy) z=y else z=x; printf(%f\n,z); 例:输入一个字符,判断它是否是0~9的阿拉伯数字。 说明:测试表达式可以是: 关系表达式 逻辑表达式 数值表达式 其他表达式 如: b=3; ? if (a=2) printf(%d\n,a); else printf(%d\n,b); 结果:2 说明:在此a=2为赋值表达式,因不等于0,故为真(条件成立)。 这与关系表达式a==2不同( a==2只有当a=2时条件才成立)。 说明:语句1或语句2如果是复合语句(即由多条语句构成),那么必须用花括号{}括起来,以避免引起逻辑错误。 如:试对比以下两段程序。 (程序1) a=4,b=7; if (ab) { t=a; a=b; b=t; } (程序2) a=4,b=7; if (ab) t=a; a=b; b=t; if…else语句的嵌套 在if语句的语句1或语句2中包含另一个或几个if语句,以解决更复杂的问题。 例:求解ax2+bx+c=0的完全解。 例:促销折扣问题。 if…else语句嵌套时的注意事项: 当if与else数目不一致时,除非用花括号明确配对关系,否则else总是与其前最近的if配对。如: if (ab) if (bc) c=a; else c=b; 程序编写时最好使用缩进格式,以便使层次关系更为清晰。 条件运算符和条件表达式 条件运算符:为三元运算符,由?与:组成。 条件表达式:由条件运算符连接三个运算对象所构成的表达式。 条件表达式的格式与功能: 表达式1?表达式2:表达式3 若表达式1≠0,则将表达式2的值作为整个条件表达式的值。否则将表达式3的值作为条件表达式的值。(相当于一个if…else语句。) 例:设a=10,b=20,计算表达式的值。 ab ? a+b : a-b 结果:-10 a-b0 ? a*b : a*3 结果:200 条件运算符的优先级:高于赋值运算符和逗号运算符,低于其他运算符。 条件运算符的结合性:从右到左。 如: exp1?exp2:exp3?exp4:exp5 ?? exp1?exp2:(exp3?exp4:exp5) exp1?exp2?exp3:exp4:exp5 ?? exp1?(exp2?exp3:exp4):exp5 条件表达式的应用:代替if...else 语句,给变量赋值。 例: if (ab) c=a*b; else c=a/b; ??c=(ab)?a*b:a/b; 二、 if —else if—else语句 多分支结构 格式: if (测试表达式1) 语句1; else if (测试表达式2) 语句2; … else if (测试表达式n) 语句n; [else 语句n+1;] [例] 例:促销折扣问题。 三、switch语句 多分支结构 格式: switch (e) { case c1: 语句1; [break;] case c2: 语句2; [break;] …… case cn: 语句n; [break;] [default: 语句n+1;] } 例:根据学生成绩的等级打印出分数段。 * * 功能:依次判断各个测试表达式(即条件)的值,当发现某个表达式值为1(真),则执行相应的语句,并跳过其余部分。如果所有表达式值都为0(假),则执行最后一个else的语句(如果没有最后的else语句,则不执行任何操作)。 流程图 :(见教材)
文档评论(0)