chap4(分支语句).ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chap4(分支语句)

1) if 语句的一般形式 ? if (表达式) 语句; ? if (表达式) 语句1; else 语句2; 其中: ? “语句”和“语句1”可以是用{ }括起来的复合语句。 ? “语句2”既可以是用{ } 括起来的复合语句,也可以是?或?形式的if 语句。 ? “语句1”后面的“ ; ”是必须的。 例4.1 输入三个实数,按小到大顺序输出。 main( ) {float a,b,c,t; scanf(“%f,%f,%f ”,a,b,c); if (ab) { t=a; a=b; b=t; } if (ac) { t=a; a=c; c=t; } if (bc) { t=b; b=c; c=t; } printf(“%5.2f,%5.2f,%5.2f ”,a,b,c); } 在 if 语句中又包含一个或多个 if 语句称为 if 语句的嵌套。 注:从最内层开始,else总是与它前面最近的未曾配对的if 配对,除非用花括号改变其配对关系。 例4.2 编程求 若有如下 if 语句: if (ab) max=a; else max=b; 则可以用下面的条件运算符处理: max=(ab) ? a : b; 同样,对如下 if 语句: if (ab) printf(“%d”,a); else printf(“%d”,b); 也可用下面的语句代替: printf(“%d”,ab ? a : b); ? 条件运算符的优先级高于赋值运算符,低于关系运算符和算 术运算符。如: ab?a:b+1; /? 相当于ab?a:(b+1) ?/ ? 条件运算符的结合方向为 “自右至左”。 如:ab?a:cd?c:d /* 相当于ab?a:(cd?c:d) */ 若a=1, b=2, c=3, d=4,则条件表达式的值为4。 ? 仅在if 语句内嵌的语句为赋值语句时,才能用条件表达式取代该if语句。 ? 条件表达式中的操作对象可以是不同的类型,且其值取较高 的类型。如: x?‘a’:‘b’ 当x = 0时,条件表达式的值为‘b’ xy?1:1.5 当x ≤ y时,条件表达式的值为1.5,否则为1.0。 例4.3 求一元二次方程的解。 #include “math.h” main( ) {float a,b,c,d,x1,x2,p,q; scanf(“%f,%f,%f ”,a,b,c); printf(“The equation”); if (fabs(a) = 1e-6) {printf(“ is not quadratic”);getchar();exit(-1);} else d=b?b-4?a?c; if (fabs(d)=1e-6) {printf(“ has two equal roots: %8.4f \n”,-b/(2?a)); getchar();exit(-1);} else if (d1e-6) {x1= (-b+sqrt(d))/(2?a); x2= (-b-sqrt(d))/(2?a); printf(“ has distinct real roots: %8.4f and %8.4f \n”,x1,x2); } else {p=-b/(2?a); q=sqrt(-d)/(2?a); printf(“ has complex roots:\n”); printf(“%8.4f +%8.4f i\n”,p,q); printf(“%8.4f -%8.4f i\n”,p,q); } } switch 语句为多路分支选择语句。其一般形式如下: switch (表达式) { case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; …… case 常量表达式n: 语句n; break; defaul t : 语句n+1; } 其中: ? “表达式”可以是任何类型的表达式。 ? “常量表达式”的值必须互不相同。 ? 各个case出现的先后顺序对执行结果没有影响。 ? 执行完一个case后面的语句后,通过break语句结束该控制结构。 ? 若所有的“

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档