选择结构程序设计(1).ppt_第1页
选择结构程序设计(1).ppt_第2页
选择结构程序设计(1).ppt_第3页
选择结构程序设计(1).ppt_第4页
选择结构程序设计(1).ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章,选择结构程序设计,4.1关系运算符和关系表达式 4.2逻辑运算符和逻辑表达式 4.3if语句 4.4switch语句 4.5程序举例 习题,主要内容,本章要点,关系表达式 逻辑表达式 选择结构程序设计,引言,选择结构的作用:根据所指定的条件是否满足,决定从给定的若干组操作选择其一。 例如: if ( x0 ) y=1; else y=-1; 要设计选择结构程序,要考虑两个方面的问题: 一是在C语言中如何来表示条件。 二是在C语言中实现选择结构用什么语句。,4.1 关系运算符和关系表达式,关系运算符:比较两个量的运算符。,C语言提供6种关系运算符: (小于) =(小于或等于) (大于)

2、=(大于或等于) = =(等于) !=(不等于),优先级别相同(高),优先级别相同(低),举例: ca+b 等效于 c(a+b) ab= =c 等效于(ab)= =c a= =bc 等效于a=(bc),4.1 关系运算符和关系表达式,算术运算符、关系运算符、赋值运算符优先级比较,关系表达式(左结合性),4.1 关系运算符和关系表达式,定义:用关系运算符将两个表达式连接起来的式子。,算术表达式 关系表达式 逻辑表达式 赋值表达式 字符表达式,关系表达式的值是一个逻辑值,即“真”或“假” 1代表真,0代表假 一个非零的数值认作为“真”,一般形式:表达式 关系运算符 表达式,逻辑运算符及其优先次序,

3、4.2 逻辑运算符和逻辑表达式,C语言提供3种逻辑运算符: int i=1,j=2,k=3; float x=3e+5,y=0.85; printf(%d,%dn,!x*!y,!x); printf(%d,%dn,x|i ,!x*!y为 0,!x的逻辑值为 0,x|i else printf(%f,-x); if语句有三种基本形式。 1. if2. if-else3. if-else-if 前二种形式的if语句一般都用于两个分支的情况。 当有多个分支选择时,可采用if-else-if语句。,1、if语句,4.3 if语句,流程图,例如:输入两个数a,b,按从大到小的顺序输出。,main() i

4、nt a,b,temp; printf(n input two numbers:); scanf(%d%d, ,if语句中应注意的问题,4.3 if语句,在if语句中,if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式, 但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。 例如: if (B) 语句; if(b) 语句;只要表达式的值为非0,即为“真”。 又如: if(a=b) printf(%d,a); else printf(a=0);,本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。,if语句中应注意的问题

5、(续),4.3 if语句,在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。if (ab) max=a; 在if语句中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用括起来组成一个复合语句。但要注意的是在之后不能再加分号。 例如:比较以下语句: if(ab)tem=a;a=b;b=temp; if(ab) tem=a;a=b;b=temp;,2、if-else语句,4.3 if语句,流程图,4.3 if语句,输入三角形的三个边长,求三角形的面积。 分析: 只有当a+bc,b+ca,c+ab时才能构成三角形,如果用户输入的三边不满足条件,则应提示错误,并不再计算

6、。 其中:p=(a+b+c)/2, 平方根函数为:sqrt(float a);,4.3 if语句,#include include main( ) float a, b, c, p, s; scanf(%f, %f, %f, ,3、if-else-if语句,4.3 if语句,if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式m) 语句m else 语句n;,流程图,其语义是: 依次判断表达式的值, 当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后

7、继续执行后续程序。,例如: if(cost500) discount=0.8; else if(cost 300) discount =0.85; else if(cost 100) discount =0.90; else if(cost 50) discount =0.95; else discount =0;,3、if-else-if语句,4.3 if语句,else if不能写成elseif,例如: if(score100|score=90) printf(“A”); else if(score =80) printf(“B”); else if(score =70) printf(“C

8、”); else if(score =70) printf(“D”); else printf(“E”);,输入一个字符,若为大写字母,则输出其后续字符,若为小写字母,则输出其前驱字符,若为其他,则原样输出。,#include main() char c; c=getchar(); if(c=A ,4.3.2 if语句的嵌套,在if语句中又包含一个或多个if语句,称为if语句的嵌套。,一般形式:,if ( ) ,if ( ) 语句1 else 语句2 ,else,if ( ) 语句3 else 语句4 ,内嵌if,内嵌if,else总是与它前面最近的if配对,例4.3 硅谷工资计算。 #inc

9、lude main() int gh,gs,gz; printf(请输入工号和工时:); scanf(%d%d, ,4.3.2 if语句的嵌套,从键盘上输入3个数,将最大值输出。 #include main() int x,y,z,max; printf(请输入3个数:); scanf(%d%d%d, ,=与=,=:赋值运算符 =:比较运算符 二者都可以作为条件判断: =:只是作比较,如果表达式左边是变量,不进行赋值操作。 =:先进行赋值运算,然后拿运算结果作为逻辑条件。 if(a=5) a+; if(a=5) a+;,条件运算符: ? : 格式:表达式1 ? 表达式2 : 表达式3 使用场合

10、:若在if语句中,当被判别的表达式的值为 “真”或“假” 时,都执行一个赋值语句且向同 一个变量赋值时,可以用一个条件运算符来 处理。,4.3.3 条件运算符,例如: if(ab) max=a; else max=b;,相当于 max=(ab)? a : b;,4.3.3条件运算符与条件表达式,条件运算符 ? :,说明: 1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。 2)条件运算符?和:是一对运算符,不能分开单独使用。 3)条件运算符的结合方向是自右至左。 4)如果表达式2、表达式3的数据类型不一致时,向类型高的转换。如:ij?20:32.5,max=(ab?a:b)

11、max=ab?a:b,ab?a:cd?c:d ab?a:(cd?c:d),4.3.4 switch语句,switch (表达式) case常量表达式1:语句1 case常量表达式2:语句2 case常量表达式n:语句n default:语句n1 ,一般形式:,其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。,改良switch,4.3.4 switch语句,switch (表达式) case常量

12、表达式1:语句1;break; case常量表达式2:语句2;break; case常量表达式n:语句n;break; default:语句n1; ,说明: 1)在case后的各常量表达式的值不能相同,否则会出现错误。 2)在case后,允许有多个语句,可以不用括起来,没有语句时,什么也不做,执行后面case的语句,直到遇到break。 3)各case和default子句的先后顺序可以变动,此时程序执行结果可能受到影响。 4)default子句可以省略不用。,空语句举例,例5.5:按照输入的考试成绩的等级打印出百分制分数段。,5.4 switch语句,#include main() char grade; printf(please input the grade(A,B,C,D): ); grade=getchar(); switch (grade) caseA: printf(85100n);break; caseB: printf(7084n);break; caseC: printf(6069n);break; caseD: printf(60n);break; default: printf(errorn); ,作业,1、写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1) abc & b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论