版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 分支结构,1) if 语句的一般形式 if (表达式) 语句; if (表达式) 语句1; else 语句2; 其中: “语句”和“语句1”可以是用 括起来的复合语句。 “语句2”既可以是用 括起来的复合语句,也可以是或形式的if 语句。 “语句1”后面的“ ; ”是必须的。,4.1 if 语句,例4.1 输入三个实数,按小到大顺序输出。 main( ) float a,b,c,t; scanf(“%f,%f,%f ”, ,2) if 语句的嵌套形式一,if(表达式1),else if (表达式2),else if (表达式3),else if(表达式n),else,语句体1,语句体2
2、,语句体3,语句体n,语句体n +1,流程:,在 if 语句中又包含一个或多个 if 语句称为 if 语句的嵌套。,注:从最内层开始,else总是与它前面最近的未曾配对的if 配对,除非用花括号改变其配对关系。,2) if 语句的嵌套形式二,例4.2 编程求,的值。x的值从键盘输入。,main( ) int x,y; scanf(“%d”, ,P58p59有多种写法,若有如下 if 语句: if (ab) max=a; else max=b; 则可以用下面的条件运算符处理: max=(ab) ? a : b; 同样,对如下 if 语句: if (ab) printf(“%d”,a); else
3、 printf(“%d”,b); 也可用下面的语句代替: printf(“%d”,ab ? a : b);,3) 条件运算符(p20), 条件运算符的优先级高于赋值运算符,低于关系运算符和算 术运算符。如: 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
4、= 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 ”, ,4.2 switch 语句,用if或if/else或它们的嵌套也可使程序实现多路分支,但容易出现下面的问题:,(1) 可读性差,(2) 破坏结构,解决问题的方法:采用switch语句。,switch(变量) case 常量表达式1: 语句体1 case 常
5、量表达式2: 语句体2 case 常量表达式n: 语句体n default : 语句体(n+1) ,一般形式:,(1) 根据表达式的取值, 判断其与哪一个常量表达式相等。如=表达式i,则自语句i开始执行,直到语句n+1止。,(2) 若与所有常量表达式值不相等,则从default后的语句开始执行。,功能:,注:default 可有可无。,找入口,例: 根据成绩等级打印百分数段.,switch (grade) case A: printf (85100n); case B: printf (7084n); case C: printf (6069n); case D: printf (60n);
6、default: printf (errorn); ,#include main() char grade; printf(please input a character:); scanf(%c, ,程序如下: 4_3_1,运行结果为:,A ,程序运行结果不在预料之中!,产生错误的原因: 没有完全起到分支作用。,85-100 70-84 60-69 60 Error,switch 语句为多路分支选择语句。其一般形式如下: switch (表达式) case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; case 常量表达式n: 语句n; break; defaul t : 语句n+1; 其中: “表达式”可以是任何类型的表达式。 “常量表达式”的值必须互不相同。 各个case出现的先后顺序对执行结果没有影响。 执行完一个case后面的语句后,通过break语句结束该控制结构。 若所有的“常量表达式”的值都不与“表达式”的值相匹配,就执行default 后面的语句。 多个case可以共用一组执行语句。 case后面若有多个语句,可以不用 括起。,4.2 switch语句,例4.4 某商店按如下折扣优惠购货的顾客(演示4_4.c),试编程,输入购货金额M,求顾
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论